Add memory consuption results to benchmarks
Apart from measuring time, we should also measure memory usage. This would be
really good for the journal version of the paper also.
Original issue reported on code.google.com by marianopeck on 16 Jun 2011 at 2:36
And file size!!! :)
Original comment by marianopeck on 16 Jun 2011 at 6:00
file size --> http://code.google.com/p/fuel/issues/detail?id=43
Original comment by [email protected] on 16 Jun 2011 at 6:03
For memory usage we need to take into account GC....it is complicated
Original comment by marianopeck on 18 Jun 2011 at 6:58
For memory usage we need to take into account GC....it is complicated
Original comment by marianopeck on 18 Jun 2011 at 6:58
We could add methods to MessageTally to access gc information, since now it
seems only accessible through printing them with:
reportGCStatsOn: str
| oldSpaceEnd youngSpaceEnd memoryEnd fullGCs fullGCTime incrGCs incrGCTime tenureCount upTime rootOverflows |
upTime := time.
oldSpaceEnd := gcStats at: 1.
youngSpaceEnd := gcStats at: 2.
memoryEnd := gcStats at: 3.
fullGCs := gcStats at: 7.
fullGCTime := gcStats at: 8.
incrGCs := gcStats at: 9.
incrGCTime := gcStats at: 10.
tenureCount := gcStats at: 11.
rootOverflows := gcStats at: 22.
str cr.
str nextPutAll: '**Memory**'; cr.
str nextPutAll: ' old ';
nextPutAll: oldSpaceEnd asStringWithCommasSigned; nextPutAll: ' bytes'; cr.
str nextPutAll: ' young ';
nextPutAll: (youngSpaceEnd - oldSpaceEnd) asStringWithCommasSigned; nextPutAll: ' bytes'; cr.
str nextPutAll: ' used ';
nextPutAll: youngSpaceEnd asStringWithCommasSigned; nextPutAll: ' bytes'; cr.
str nextPutAll: ' free ';
nextPutAll: (memoryEnd - youngSpaceEnd) asStringWithCommasSigned; nextPutAll: ' bytes'; cr.
str cr.
str nextPutAll: '**GCs**'; cr.
str nextPutAll: ' full ';
print: fullGCs; nextPutAll: ' totalling '; nextPutAll: fullGCTime asStringWithCommas; nextPutAll: 'ms (';
print: ((fullGCTime / upTime * 100) roundTo: 1.0);
nextPutAll: '% uptime)'.
fullGCs = 0 ifFalse:
[str nextPutAll: ', avg '; print: ((fullGCTime / fullGCs) roundTo: 1.0); nextPutAll: 'ms'].
str cr.
str nextPutAll: ' incr ';
print: incrGCs; nextPutAll: ' totalling '; nextPutAll: incrGCTime asStringWithCommas; nextPutAll: 'ms (';
print: ((incrGCTime / upTime * 100) roundTo: 1.0);
nextPutAll: '% uptime)'.
incrGCs = 0 ifFalse:
[str nextPutAll:', avg '; print: ((incrGCTime / incrGCs) roundTo: 1.0); nextPutAll: 'ms'].
str cr.
str nextPutAll: ' tenures ';
nextPutAll: tenureCount asStringWithCommas.
tenureCount = 0 ifFalse:
[str nextPutAll: ' (avg '; print: (incrGCs / tenureCount) asInteger; nextPutAll: ' GCs/tenure)'].
str cr.
str nextPutAll: ' root table ';
nextPutAll: rootOverflows asStringWithCommas; nextPutAll:' overflows'.
str cr.
Original comment by [email protected] on 14 May 2012 at 5:48
After fixing http://code.google.com/p/fuel/issues/detail?id=155 , we should
also calculate median and deviation of GC stats.
Original comment by [email protected] on 14 May 2012 at 6:06
This issue has been automatically marked as stale because it has not had recent activity. It will remain open but will probably not come into focus. If you still think this should receive some attention, leave a comment. Thank you for your contributions.