Reduce the size of the data caches

Description

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.

/tsconv/ccapitst/ListNames
47KB
Opens all converters

/tsconv/ccapitst
110KB
Using ,swaplfnl option can dramatically increases the size

/tsformat/cnumtst
34KB
Most additional memory seems to be from ures_* cache

/tscoll/cnormtst
33KB

/tscoll/usrchtst
36KB

/tstxtbd
45KB
Most additional memory seems to be from UnicodeSet's caches

/utrans
134KB

/tsutil/cloctst
59KB
Contains memory from UnicodeSet and ures caches

Activity

Show:
TracBot
July 1, 2018, 12:10 AM
Trac Comment by auditor—1970-01-01T01:41:51.000Z
  • 05/07/03 13:10:50 schererm changed notes2

  • 05/07/03 13:10:50 schererm moved from incoming to others

TracBot
July 1, 2018, 12:10 AM
Trac Comment 3 by —2008-03-06T05:38:01.000Z

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.

Assignee

Steven R. Loomis

Reporter

TracBot

Components

Labels

None

Reviewer

None

Priority

zero

Time Needed

Days

Fix versions

None