FWIW: standard custom columns have almost no effect on calibre performance. Their values are read into memory when calibre starts and no further computation is needed unless their value is changed. The tag browser is completely computed when something changes using in-memory values, so the number of custom columns has no effect on scrolling. The auto-hide feature will have no impact at all, because the value must be computed in order to know that there aren't any values.
If I had to guess, it would say that it is the icon rules. Each rule is converted to a template, the equivalent of a column built from other columns (a "composite" column), so 17 rules will have a similar performance impact as 17 composite columns. You might be able to make it run faster by using a single advanced icon rule to compute the list of icons to apply to a row. Even better would be to use a custom template function to compute the list of icons. If you use "composed rules" then you "pay" for evaluating each template in the composition set.
Another possibility is memory. Calibre uses an in-memory copy of its database. If there isn't enough memory for that copy plus all the other data structures (tag browser, cover cache, template cache, etc) then your machine will start using disk-based virtual memory, which is very slow.
|