Currently ICU has several data caches. Some of these data caches are larger than
they need to be. Excessively large and complex data caches increase
initialization time, and they use more space than they need to use. We should
try to reduce the size of these caches.
So far it looks like Converter, UnicodeSet, ResourceBundle and Transliterator
caches should be investigated further.
Here are the details of some APIs that should be investigated further:
The minimum size is about 33KB of allocated space,
which includes all of the basic data tests in cintltst.c(main)
and MSVCRTD.DLL allocations.
#.3KB is from the converter hash table.
Opens all converters
Using ,swaplfnl option can dramatically increases the size
Most additional memory seems to be from ures_* cache
Most additional memory seems to be from UnicodeSet's caches
Contains memory from UnicodeSet and ures caches
05/07/03 13:10:50 schererm changed notes2
05/07/03 13:10:50 schererm moved from incoming to others
Common use case should be considered in these cache sizes. For example, if you only use the UTF-8 and ISO-8859-1 converters, the charset conversion cache won't be created. Also only a few resource bundles are normally opened. Anything that needs a UnicodeSet may create a cache of significant size.