Relates :
|
|
Relates :
|
|
Relates :
|
|
Relates :
|
|
Relates :
|
The symbol table stores references to symbols. Each of these symbols is reference counted; if the reference count of a symbol reaches zero, it can be removed. Currently, the symbol table is cleaned up during various GC pauses, as it provides a convenient opportunity where no random modification by other threads can occur. However, particularly because this cleanup process is serial, it takes a long time. In particular across a large range of FMW applications (see attached log file), it takes 50% of remark pause time, which is way too high. Symbol table scan/scrubbing pause time must be improved; there are several options for this: - parallelize this task - incrementally scrub the symbol table (i.e. only parts at once) given e.g. a time allowance - maybe move it or parts of it, e.g. just finding the scrub-able entries, to a concurrent task
|