Item | Before | After | Delta | Percentage |
app.jsa | 107966464 | 107540480 | -425984 | -0.39 |
Symbols in RO | 13215840 | 12791728 | -424112 | -0.32 |
The Shared System Dictionary and System Dictionary data obtained after App started and run for a while, the footprint(s) for SystemDictionary are different --that depends how many classes loaded at that time. The SharedDictionary showed more variant bucket(s) size. The last row, run with -XX:+PrintSharedArchiveAndExit which exit after classes in shared archive loaded, then print out and exit right away. The max bucket size reduced --- shown improvement in table balance. This is single run, does not have statistical significance, but we can see after fix, there is no major concern about the table balance --- if we regard the App as a no-small application.
Name | Before | After |
---|---|---|
Shared System Dictionary |
Number of buckets : 1009 = 16144 bytes, avg 16.000 Number of entries : 14128 = 452096 bytes, avg 32.000 Number of literals : 14128 = 1233336 bytes, avg 87.297 Total footprint : = 1701576 bytes Average bucket size : 14.002 Variance of bucket size : 13.213 Std. dev. of bucket size: 3.635 Maximum bucket size : 26 |
Number of buckets : 1009 = 16144 bytes, avg 16.000 Number of entries : 14128 = 452096 bytes, avg 32.000 Number of literals : 14128 = 1233336 bytes, avg 87.297 Total footprint : = 1701576 bytes Average bucket size : 14.002 Variance of bucket size : 14.464 Std. dev. of bucket size: 3.803 Maximum bucket size : 29 |
System Dictionary |
Number of buckets : 1009 = 16144 bytes, avg 16.000 Number of entries : 19451 = 622432 bytes, avg 32.000 Number of literals : 19451 = 1696130 bytes, avg 87.200 Total footprint : = 2334706 bytes Average bucket size : 19.278 Variance of bucket size : 20.426 Std. dev. of bucket size: 4.520 Maximum bucket size : 33 |
Number of buckets : 1009 = 16144 bytes, avg 16.000 Number of entries : 19394 = 620608 bytes, avg 32.000 Number of literals : 19394 = 1692461 bytes, avg 87.267 Total footprint : = 2329213 bytes Average bucket size : 19.221 Variance of bucket size : 19.149 Std. dev. of bucket size: 4.376 Maximum bucket size : 36 |
SymbolTable statistics |
Number of buckets : 20011 = 320176 bytes, avg 16.000 Number of entries : 77392 = 2476544 bytes, avg 32.000 Number of literals : 77392 = 4172824 bytes, avg 53.918 Total footprint : = 6969544 bytes Average bucket size : 3.867 Variance of bucket size : 3.826 Std. dev. of bucket size: 1.956 Maximum bucket size : 13 |
Number of buckets : 20011 = 320176 bytes, avg 16.000 Number of entries : 77140 = 2468480 bytes, avg 32.000 Number of literals : 77140 = 4008656 bytes, avg 51.966 Total footprint : = 6797312 bytes Average bucket size : 3.855 Variance of bucket size : 3.816 Std. dev. of bucket size: 1.954 Maximum bucket size : 13 |
StringTable statistics |
Number of buckets : 60013 = 960208 bytes, avg 16.000 Number of entries : 64719 = 2071008 bytes, avg 32.000 Number of literals : 64719 = 8011952 bytes, avg 123.796 Total footprint : = 11043168 bytes Average bucket size : 1.078 Variance of bucket size : 1.069 Std. dev. of bucket size: 1.034 Maximum bucket size : 7 |
Number of buckets : 60013 = 960208 bytes, avg 16.000 Number of entries : 61390 = 1964480 bytes, avg 32.000 Number of literals : 61390 = 7730728 bytes, avg 125.928 Total footprint : = 10655416 bytes Average bucket size : 1.023 Variance of bucket size : 1.015 Std. dev. of bucket size: 1.008 Maximum bucket size : 7 |
Shared Dictionary data with -XX:+PrintSharedArchiveAndExit |
Number of buckets : 1009 = 16144 bytes, avg 16.000 Number of entries : 14128 = 452096 bytes, avg 32.000 Number of literals : 14128 = 1233336 bytes, avg 87.297 Total footprint : = 1701576 bytes Average bucket size : 14.002 Variance of bucket size : 12.985 Std. dev. of bucket size: 3.603 Maximum bucket size : 28 |
Number of buckets : 1009 = 16144 bytes, avg 16.000 Number of entries : 14128 = 452096 bytes, avg 32.000 Number of literals : 14128 = 1233336 bytes, avg 87.297 Total footprint : = 1701576 bytes Average bucket size : 14.002 Variance of bucket size : 14.327 Std. dev. of bucket size: 3.785 Maximum bucket size : 25 |
The data was obtained by using of -XX:PredictedLoadedClassCount=NUMBER By changing the numbers, we can see how the data distribution chnaged. Code changes for this test: --- a/src/share/vm/classfile/systemDictionary.cpp Thu Jul 09 15:39:05 2015 -0400 +++ b/src/share/vm/classfile/systemDictionary.cpp Fri Jul 10 15:22:48 2015 -0700 @@ -1146,9 +1146,10 @@ #if INCLUDE_CDS void SystemDictionary::set_shared_dictionary(HashtableBucket* t, int length, int number_of_entries) { - assert(length == _nof_buckets * sizeof(HashtableBucket ), + int nof_buckets = calculate_systemdictionary_size(PredictedLoadedClassCount); + assert(length == nof_buckets * (int)sizeof(HashtableBucket ), "bad shared dictionary size."); - _shared_dictionary = new Dictionary(_nof_buckets, t, number_of_entries); + _shared_dictionary = new Dictionary(nof_buckets, t, number_of_entries); }
PredictedLoadedClassCount | Before | After |
---|---|---|
default |
Number of buckets : 1009 = 16144 bytes, avg 16.000 Number of entries : 2418 = 77376 bytes, avg 32.000 Number of literals : 2418 = 1932712 bytes, avg 799.302 Total footprint : = 2026232 bytes Average bucket size : 2.396 Variance of bucket size : 2.443 Std. dev. of bucket size: 1.563 Maximum bucket size : 9 |
Number of buckets : 1009 = 16144 bytes, avg 16.000 Number of entries : 2418 = 77376 bytes, avg 32.000 Number of literals : 2418 = 1932712 bytes, avg 799.302 Total footprint : = 2026232 bytes Average bucket size : 2.396 Variance of bucket size : 2.378 Std. dev. of bucket size: 1.542 Maximum bucket size : 9 |
5000 |
Number of buckets : 2017 = 32272 bytes, avg 16.000 Number of entries : 2418 = 77376 bytes, avg 32.000 Number of literals : 2418 = 1932712 bytes, avg 799.302 Total footprint : = 2042360 bytes Average bucket size : 1.199 Variance of bucket size : 1.174 Std. dev. of bucket size: 1.083 Maximum bucket size : 6 |
Number of buckets : 2017 = 32272 bytes, avg 16.000 Number of entries : 2418 = 77376 bytes, avg 32.000 Number of literals : 2418 = 1932712 bytes, avg 799.302 Total footprint : = 2042360 bytes Average bucket size : 1.199 Variance of bucket size : 1.162 Std. dev. of bucket size: 1.078 Maximum bucket size : 6 |
10000 |
Number of buckets : 4049 = 64784 bytes, avg 16.000 Number of entries : 2418 = 77376 bytes, avg 32.000 Number of literals : 2418 = 1932712 bytes, avg 799.302 Total footprint : = 2074872 bytes Average bucket size : 0.597 Variance of bucket size : 0.598 Std. dev. of bucket size: 0.773 Maximum bucket size : 5 |
Number of buckets : 4049 = 64784 bytes, avg 16.000 Number of entries : 2418 = 77376 bytes, avg 32.000 Number of literals : 2418 = 1932712 bytes, avg 799.302 Total footprint : = 2074872 bytes Average bucket size : 0.597 Variance of bucket size : 0.595 Std. dev. of bucket size: 0.771 Maximum bucket size : 5 |
20000 |
Number of buckets : 10103 = 161648 bytes, avg 16.000 Number of entries : 2418 = 77376 bytes, avg 32.000 Number of literals : 2418 = 1932712 bytes, avg 799.302 Total footprint : = 2171736 bytes Average bucket size : 0.239 Variance of bucket size : 0.241 Std. dev. of bucket size: 0.491 Maximum bucket size : 4 |
Number of buckets : 10103 = 161648 bytes, avg 16.000 Number of entries : 2418 = 77376 bytes, avg 32.000 Number of literals : 2418 = 1932712 bytes, avg 799.302 Total footprint : = 2171736 bytes Average bucket size : 0.239 Variance of bucket size : 0.244 Std. dev. of bucket size: 0.494 Maximum bucket size : 4 |
30000 |
Number of buckets : 10103 = 161648 bytes, avg 16.000 Number of entries : 2418 = 77376 bytes, avg 32.000 Number of literals : 2418 = 1932712 bytes, avg 799.302 Total footprint : = 2171736 bytes Average bucket size : 0.239 Variance of bucket size : 0.241 Std. dev. of bucket size: 0.491 Maximum bucket size : 4 |
Number of buckets : 10103 = 161648 bytes, avg 16.000 Number of entries : 2418 = 77376 bytes, avg 32.000 Number of literals : 2418 = 1932712 bytes, avg 799.302 Total footprint : = 2171736 bytes Average bucket size : 0.239 Variance of bucket size : 0.244 Std. dev. of bucket size: 0.494 Maximum bucket size : 4 |
40000 |
Number of buckets : 20201 = 323216 bytes, avg 16.000 Number of entries : 2418 = 77376 bytes, avg 32.000 Number of literals : 2418 = 1932712 bytes, avg 799.302 Total footprint : = 2333304 bytes Average bucket size : 0.120 Variance of bucket size : 0.118 Std. dev. of bucket size: 0.344 Maximum bucket size : 3 |
Number of buckets : 20201 = 323216 bytes, avg 16.000 Number of entries : 2418 = 77376 bytes, avg 32.000 Number of literals : 2418 = 1932712 bytes, avg 799.302 Total footprint : = 2333304 bytes Average bucket size : 0.120 Variance of bucket size : 0.119 Std. dev. of bucket size: 0.345 Maximum bucket size : 3 |
50000 |
Number of buckets : 20201 = 323216 bytes, avg 16.000 Number of entries : 2418 = 77376 bytes, avg 32.000 Number of literals : 2418 = 1932712 bytes, avg 799.302 Total footprint : = 2333304 bytes Average bucket size : 0.120 Variance of bucket size : 0.118 Std. dev. of bucket size: 0.344 Maximum bucket size : 3 |
Number of buckets : 20201 = 323216 bytes, avg 16.000 Number of entries : 2418 = 77376 bytes, avg 32.000 Number of literals : 2418 = 1932712 bytes, avg 799.302 Total footprint : = 2333304 bytes Average bucket size : 0.120 Variance of bucket size : 0.119 Std. dev. of bucket size: 0.345 Maximum bucket size : 3 |
60000 |
Number of buckets : 20201 = 323216 bytes, avg 16.000 Number of entries : 2418 = 77376 bytes, avg 32.000 Number of literals : 2418 = 1932712 bytes, avg 799.302 Total footprint : = 2333304 bytes Average bucket size : 0.120 Variance of bucket size : 0.118 Std. dev. of bucket size: 0.344 Maximum bucket size : 3 |
Number of buckets : 20201 = 323216 bytes, avg 16.000 Number of entries : 2418 = 77376 bytes, avg 32.000 Number of literals : 2418 = 1932712 bytes, avg 799.302 Total footprint : = 2333304 bytes Average bucket size : 0.120 Variance of bucket size : 0.119 Std. dev. of bucket size: 0.345 Maximum bucket size : 3 |
70000 |
Number of buckets : 40423 = 646768 bytes, avg 16.000 Number of entries : 2418 = 77376 bytes, avg 32.000 Number of literals : 2418 = 1932712 bytes, avg 799.302 Total footprint : = 2656856 bytes Average bucket size : 0.060 Variance of bucket size : 0.060 Std. dev. of bucket size: 0.245 Maximum bucket size : 3 |
Number of buckets : 40423 = 646768 bytes, avg 16.000 Number of entries : 2418 = 77376 bytes, avg 32.000 Number of literals : 2418 = 1932712 bytes, avg 799.302 Total footprint : = 2656856 bytes Average bucket size : 0.060 Variance of bucket size : 0.060 Std. dev. of bucket size: 0.245 Maximum bucket size : 2 |