run the attached example and click the buttons to add and remove columns
1.7s add 50 cols
0.6s remove 50 cols
2s add 100 cols
2s remove 100 cols
3.0s add 200 cols
7.5s remove 200 cols
6.1s add 400 cols
35.6s remove 400 cols
the column removal time increases significantly worse (roughly quadratic) than the adding time (roughly linear)
Doing some profiling revealed ~90% of the time is spent in the method
(org.zkoss.bind.tracker.impl.TrackerImpl.removeAllFromBeanMap() 89.707886 31391 ms (89.7%) 31391 ms)
The source code shows some nested collection iteration, and calling removeAll with a list of items each time.
Additionally this method is called several times.