If you can't read please download the document
Upload
zuriel
View
41
Download
11
Embed Size (px)
DESCRIPTION
Getting Real, Getting Dirty (without getting real dirty). Funded by the National Science Foundation under grant 0081214 Funded by DARPA under contract F33615-00-C-1697. Ron K. Cytron Joint work with Krishna Kavi University of Alabama at Huntsville. - PowerPoint PPT Presentation
Citation preview
Getting Real, Getting Dirty(without getting real dirty)Ron K. CytronJoint work with Krishna Kavi University of Alabama at HuntsvilleApril 2001Dante Cannarozzi, Sharath Cholleti, Morgan Deters, Steve DonahueMark Franklin, Matt Hampton, Michael Henrichs, Nicholas Leidenfrost, Jonathan Nye, Michael Plezbert, Conrad WarmboldCenter for Distributed Object ComputingDepartment of Computer ScienceWashington UniversityFunded by the National Science Foundation under grant 0081214Funded by DARPA under contract F33615-00-C-1697
OutlineMotivationAllocationCollectionConclusion
Traditional architecture and object-oriented programsCaches are still biased toward Fortran-like behaviorCPU is still responsible for storage managementObject-management activity invalidates cachesGC disruptiveCompaction
An OO-biased design using IRAMs(with Krishna Kavi)CPU and cache stay the same, off-the-shelfMemory system redesigned to support OO programsCPU + cacheMMMML2 cacheLogicIRAM
IRAM interfaceMMMMLogicIRAMmallocaddrStable address for an object allows better cache behaviorObject can be relocated within IRAM, but its address to the CPU is constant
IRAM interfaceMMMMLogicIRAMputfield/getfieldvalueObject referencingtracked inside IRAM-supports garbage collection
IRAM interfaceMMMMLogicIRAMgccompactprefetchGoal: relegate storage-management functions to IRAM
Macro accessesMMMMLogicIRAMp.getLeft().getNext()*(*(p+12)+32)Observe: code sequences contain common gestures (superoperators)
Gesture abstractionMMMMLogicIRAMp.getLeft().getNext()*(*(p+12)+32)M143(x): *(*(x+12)+32)Goal: decrease traffic between CPU and storage
Gesture applicationMMMMLogicIRAMMacro 143 (p)M143(x): *(*(x+12)+32)p.getLeft().getNext()
Gesture applicationMMMMLogicIRAMMacro 143 (p)M143(x): *(*(x+12)+32)p.getLeft().getNext()p.getLeft().getNext()
Automatic prefetchingGoal: decrease traffic between CPU and storageMMMMLogicIRAMCPU + cacheL2 cacheFetch pp
p.getLeft().getNext()Automatic prefetchingGoal: decrease traffic between CPU and storageMMMMLogicIRAMCPU + cacheL2 cacheFetch pp
ChallengesAlgorithmicBounded-time methods for allocation and collectionGood average performance as wellArchitecturalLean interface between the CPU and IRAMEfficient realization
Storage Allocation (Real Time)Not necessarily fastNecessarily predictableAble to satisfy any reasonable requestDeveloper should know maxlive characteristics of the applicationThis is true for non-embedded systems as well
How much storage?curlivethe number of objects live at a point in timecurspacethe number of bytes live at a point in timeHandlesObject Space
Objects concurrently live
How much object space?
Storage AllocationFree ListLinked list of free blocksSearch for desired fitWorst case O(n) for n blocks in the list
Worst-case free-list behaviorThe longer the free-list, the more pronounced the effectNo a priori bound on how much worse the list-based scheme could getAverage performance similar
Chart1
3.14834443190.8874712937
72.83866476820.9112379964
Worst
Avg
Number of objects allocated
Slowdown of List-Based Allocator
Sheet1
Size 100Size 100Size 100Size 1Size 1Size 1
ListKnuthEstrangedListKnuthEstranged
compress0.08577227091016593629802774716746
jess-0.01099505221799181918109.19.19.1
raytrace-0.0813648294210022862208515554
db0.04079382583776362835941.21.21.1
javac0.11724915451982177413217.477
mpegaudio0.0326445776844681798609868387
mtrt-0.0058061635222622392180525454
jack0.0073244291233823212343138136138
Sheet1
0
0
0
0
0
0
0
0
Sheet2
Morgan's stuff
3000 objects size 1000 and 2000#Objects1803000
Worst2nd3rdavgWorst3.148344431972.8386647682
List11510330217851121512693511Avg0.88747129370.9112379964
Knuth1580251535071512093853
Estranged1650741546921367713739
72.838664768214.191606897414.22712272420.9112379964
180 objects size 32K
Worst2nd3rdavg
List40990545152243713478
Knuth13019773981592133919
Estranged133471119124732633935
3.14834443190.61031886570.41158191610.8874712937
Sheet2
Worst
Avg
Number of objects allocated
Speedup of Buddy over List
Sheet3
Knuths Buddy SystemFree-list segregated by sizeAll requests rounded up to a power of 2
Knuths Buddy System (1)2561286432168421Begin with one large blockSuppose we want a block of size 16
Knuths Buddy System (2)Begin with one large blockRecursively subdivide2561286432168421
Knuths Buddy System (3)2561286432168421Begin with one large blockRecursively subdivide
Knuths Buddy System (4)2561286432168421Begin with one large blockRecursively subdivide
Knuths Buddy System (5)2561286432168421Begin with one large blockYield 2 blocks size 16
Knuths Buddy System (6)One of those blocks can be given to the program2561286432168421Begin with one large blockYield: 2 blocks size 16
Worst-case free-list behaviorThe longer the free-list, the more pronounced the effectNo a priori bound on how much worse the list-based scheme could getAverage performance similar
Chart1
3.14834443190.8874712937
72.83866476820.9112379964
Worst
Avg
Number of objects allocated
Speedup of Buddy over List
Sheet1
Size 100Size 100Size 100Size 1Size 1Size 1
ListKnuthEstrangedListKnuthEstranged
compress0.08577227091016593629802774716746
jess-0.01099505221799181918109.19.19.1
raytrace-0.0813648294210022862208515554
db0.04079382583776362835941.21.21.1
javac0.11724915451982177413217.477
mpegaudio0.0326445776844681798609868387
mtrt-0.0058061635222622392180525454
jack0.0073244291233823212343138136138
Sheet1
0
0
0
0
0
0
0
0
Sheet2
Morgan's stuff
3000 objects size 1000 and 2000#Objects1803000
Worst2nd3rdavgWorst3.148344431972.8386647682
List11510330217851121512693511Avg0.88747129370.9112379964
Knuth1580251535071512093853
Estranged1650741546921367713739
72.838664768214.191606897414.22712272420.9112379964
180 objects size 32K
Worst2nd3rdavg
List40990545152243713478
Knuth13019773981592133919
Estranged133471119124732633935
3.14834443190.61031886570.41158191610.8874712937
Sheet2
00
00
Worst
Avg
Number of objects allocated
Speedup of Buddy over List
Sheet3
Spec Benchmark Results
Chart2
1.0857722709
0.9890049478
0.9186351706
1.0407938258
1.1172491545
1.0326445776
0.9941938365
1.0073244291
Speedup
Speedup of Buddy over List
Sheet1
Size 100Size 100Size 100Size 1Size 1Size 1
ListKnuthEstrangedListKnuthEstranged
compress1.08577227091016593629802774716746
jess0.98900494781799181918109.19.19.1
raytrace0.9186351706210022862208515554
db1.04079382583776362835941.21.21.1
javac1.11724915451982177413217.477
mpegaudio1.0326445776844681798609868387
mtrt0.9941938365222622392180525454
jack1.0073244291233823212343138136138
Sheet1
0
0
0
0
0
0
0
0
Sheet2
Morgan's stuff
3000 objects size 1000 and 2000#Objects1803000
Worst2nd3rdavgWorst3.148344431972.8386647682
List11510330217851121512693511Avg0.88747129370.9112379964
Knuth1580251535071512093853
Estranged1650741546921367713739
72.838664768214.191606897414.22712272420.9112379964
180 objects size 32K
Worst2nd3rdavg
List40990545152243713478
Knuth13019773981592133919
Estranged133471119124732633935
3.14834443190.61031886570.41158191610.8874712937
Sheet2
00
00
Worst
Avg
Number of objects allocated
Speedup of Buddy over List
Sheet3
Buddy SystemIf a block can be found, it can be found in log(N), where N is the size of the heapThe application cannot make that worse
DefragmentationTo keep up with the diversity of requested block sizes, an allocator may have to reorganize smaller blocks into larger ones
DefragmentationFree ListFree-list permutes adjacent blocksStorage becomes fragmented, with many small blocks and no large onesBlocks in memory Free list
DefragmentationFree ListFree-list permutes adjacent blocksTwo issues:Blocks in memory Free listJoin adjacent blocks
DefragmentationFree ListFree-list permutes adjacent blocksTwo issues:Blocks in memory Free list
Reorganize holes (move live storage)Join adjacent blocks
DefragmentationFree ListFree-list permutes adjacent blocksTwo issues:Blocks in memory Free list
Reorganize holes
Organization by address can help [Kavi]Join adjacent blocks
Buddiesjoining adjacent blocksThe blocks resulting from subdivision are viewed as buddiesTheir address differs by exactly one bitThe address of a block of size 2 differs with its buddys address at bit n01n
Knuths Buddy System (6)2561286432168421
Knuths Buddy System (5)2561286432168421When a block becomes free, it tries to rejoin its buddyA bit in its buddy tells whether the buddy is freeIf so, they glue together and make a block twice as big
Knuths Buddy System (4)2561286432168421
Knuths Buddy System (3)2561286432168421
Knuths Buddy System (2)2561286432168421
Knuths Buddy System (1)2561286432168421
Two problemsOscillationBuddy looks like it may split, glue, split, glueisnt this wasted effort?FragmentationWhat happens when Buddy cant glue but has space it would like to combine?
2561286432168421Buddyoscillation
2561286432168421Buddyoscillation
2561286432168421Buddyoscillation
2561286432168421Buddyoscillation
2561286432168421Buddyoscillation
2561286432168421Buddyoscillation
Problem is lack of hysteresisSome programs allocate objects which are almost immediately deallocated.Continuous, incremental approaches to garbage collection only make this worse!Oscillation is expensive: blocks are glued only to be quickly subdivided again
Estranged Buddy SystemVariant of Knuths ideaWhen deallocated, blocks are not eager to rejoin their buddiesEvidence of value [Kaufman, TOPLAS 84]Slight improvement on spec benchmarksAlgorithmic improvement over Kaufman
Buddy-Busy and Buddy-Free2Blocks whose buddies are busyBlocks whose buddies are freek
Estranged BuddyAllocationAllocation heuristicBuddy-busyBuddy-freeGlue one level below, buddy-freeSearch up (Knuth)Glue below
How well does Estranged Buddy do?(contrived example)
Chart3
0.82388662630.7549669276
4.70222015875.0969607843
5.46833299185.5121540752
5.67445070116.8758905338
6.3494452397.3998219506
7.3927501277.1398971038
7.42038519877.8292765511
Knuth
Estranged
Size-8150 objects
Sheet1
NormalBuddyEstrangedSpeedupKnuthEstranged
1002621084576839581000.30989878930.3121798995
2002808184376645852000.33280790750.4347913602
100042427847378725410000.50069037140.4862470488
2500223744810262399039250021.802597858222.5915851331
30002612799106591105633300024.512379093924.7346851836
330042130038758187357330048.104075084848.2274231029
Object size 1000
NormalBuddyEstrangedSpeedupKnuthEstranged
100637291322141279221000.48201400760.4981863948
150394991293911232201500.30526852720.3205567278
200525241127471164342000.46585718470.4511053472
2507066791498621668042504.71553162244.2365830556
3007778791213391218693006.41079125436.3829111587
Object size 10000
NormalBuddyEstrangedSpeedupKnuthEstranged
2001244111510051647902000.82388662630.7549669276
3007798351658441530003004.70222015875.0969607843
4009072731659141645954005.46833299185.5121540752
50010278701811401494895005.67445070116.8758905338
60011720061845841583836006.3494452397.3998219506
70012656611712031772667007.3927501277.1398971038
80014336111931991831098007.42038519877.8292765511
Object size 8150
Sheet1
00
00
00
00
00
00
00
Knuth
Estranged
Pathological Case
Sheet2
00
00
00
00
00
Knuth
Estranged
Pathological Case
Sheet3
00
00
00
00
00
00
Knuth
Estranged
Pathological Case
Estranged Buddy on Spec
Chart2
0.9551112018
1.0049723757
1.035326087
1.0094602115
1.3429220288
0.9500522709
1.0270642202
0.9906103286
Speedup
Speedup of Estranged Buddy over Knuth
Sheet1
Size 100Size 100Size 100Size 1Size 1Size 1
ListKnuthEstrangedListKnuthEstranged
compress1.08577227091016593629802774716746
jess0.98900494781799181918109.19.19.1
raytrace0.9186351706210022862208515554
db1.04079382583776362835941.21.21.1
javac1.11724915451982177413217.477
mpegaudio1.0326445776844681798609868387
mtrt0.9941938365222622392180525454
jack1.0073244291233823212343138136138
compress0.9551112018
jess1.0049723757
raytrace1.035326087
db1.0094602115
javac1.3429220288
mpegaudio0.9500522709
mtrt1.0270642202
jack0.9906103286
Sheet1
0
0
0
0
0
0
0
0
Sheet2
0
0
0
0
0
0
0
0
Speedup
Estranged Buddy over Buddy
Sheet3
Morgan's stuff
3000 objects size 1000 and 2000#Objects1803000
Worst2nd3rdavgWorst3.148344431972.8386647682
List11510330217851121512693511Avg0.88747129370.9112379964
Knuth1580251535071512093853
Estranged1650741546921367713739
72.838664768214.191606897414.22712272420.9112379964
180 objects size 32K
Worst2nd3rdavg
List40990545152243713478
Knuth13019773981592133919
Estranged133471119124732633935
3.14834443190.61031886570.41158191610.8874712937
Sheet3
00
00
Worst
Avg
Number of objects allocated
Speedup of Buddy over List
Recall: two problemsOscillationBuddy looks like it may split, glue, split, glueisnt this wasted effort?Typically not, but can beFragmentationWhat happens when Buddy cant glue but has space it would like to combine?
Buddy SystemFragmentationInternal fragmentation from rounding-up of requests to powers of twoNot really a concern these daysAssume a program can run in maxlive bytesHow much storage needed so Buddy never has to defragment?What is a good algorithm for Buddy defragmentation?
Buddy Configurations8421
Buddy Configurations
Heap Full
Buddy cant allocate size-2 block
How Big a Heap for Non-Blocking Buddy (M = maxlive)?Easy bound: M log MBetter bound: M k, where k is the number of distinct sizes to be allocatedSounds like a good bound, but it isntDefragmentation may be necessary2561286432168421M bytes each level
Managing object relocationEvery object has a stable handle, whose address does not changeEvery handle points to its objects current locationAll references to objects are indirect, through a handle
Buddy DefragmentationWhen stuck at level kNo blocks free above level kNo glueable blocks free below level kAssume maxlive still sufficesExample: k=6, size 64 not available2561286432168421
Defragmentation Algorithm326416
Defragmentation Algorithm326416swap
Defragmentation Algorithm326416glue
Defragmentation Algorithm326416
Defragmentation AlgorithmRecursively visit below to develop two buddies that can be gluedAnalogous to the recursive allocation algorithmStill, choices to be made.studies underway
Need 4 bytesMove 3 bytes?Move 1 byte?
Recall: two problemsOscillationBuddy looks like it may split, glue, split, glueisnt this wasted effort?Typically not, but can beFragmentationWhat happens when Buddy cant glue but has space it would like to combine?New algorithm to defragment BuddySelective approachshould beat ListOptimizations needed
Towards an IRAM implementationVHDL of Buddy System completeDRAM clocked at 150 MHz10 cycles per DRAM accessNeed 7 accesses per level to split blocksFor 16Mbyte heap24 levels1680 cycles worst case: 11us168x slower than a readCan we do better?
Two tricksFind a suitable free-block quicklyReturn its address quickly
Finding a suitable free blockNo space at 16, but 16 points to the level above it that has a block to offer
Finding a suitable free blockEvery level points to the level above it that has a block to offerPointers are maintained using Tarjans path-compressionLocating pointers are not stored in DRAM2561286432168421
Alternative free-block finderPath-compression may be too complex for hardwareInstead, track the largest available free block
Alternative free-block finderPath-compression may be too complex for hardwareInstead, track the largest available free blockTends to break up large blocks and favor formation of small ones2561286432168421
Fast return for mallocWant 16 bytesZip to the 64 displayWLOG we return the first part of that block immediately to the requestor643216
Want 16 bytesZip to the 64 displayWLOG we return the first part of that block immediately to the requestorAdjustment to the structures happens in parallel with the return643216Fast return for malloc
Improved IRAM allocator~10 cycles fast return~1000 cycles to recover, worst caseIs this good enough?Compare software implementation~1000 cycles worst case~600 cycles average on spec benchmarksHardware can be much fasterDepends on recover time
Do programs allow us to recover?Run of jackJVM instructions between requests 56% of requests separated by at least 100 JVM instructionsAssume 10x expansion, JVM to native codeFor the 56%, we return in 10 cyclesCode motion might improve others
MinMedianMax3181174053
Garbage CollectionWhile allocators are needed for most modern languages, garbage collection is not universally acceptedGenerational and incremental approaches help most applicationsEmbedded and real-time need assurances of bounded behavior
Why not garbage collect?Some programmers want ultimate control over storageReal-Time applications need bounded-time overheadRT Java spec relegates allocation and collection to user controlIsnt this a step back from Java?
Marking Phasethe problemTo discover the dead objects, we use calculatus eliminatusFind live objectsAll others are dead
Marking Phasethe problemTo discover the dead objects, weFind live objects
stackheapPointers from the stack to the heap make objects live
Marking Phasethe problemTo discover the dead objects, weFind live objects
Pointers from the stack to the heap make objects liveThese objects make other objects live
Marking Phasethe problemTo discover the dead objects, weFind live objectsSweep all others away as dead
stackheap
Marking Phasethe problemTo discover the dead objects, weFind live objectsSweep all others away as deadPerhaps compact the heap
stackheap
Problems with mark phaseTakes an unbounded amount of timeCan limit it using generational collection but then its not clear what will get collectedWe seek an approach that spends a constant amount of time per program operation and collects objects continuously
Two ApproachesVariation on reference countingContaminated garbage collection [PLDI00]
Reference CountingAn integer is associated with every object, summingStack referencesHeap referencesObjects with reference count of zero are deadstackheap1221110000
Problems with Reference CountingStandard problem is that objects in cyclesstackheap1211110000
Standard problem is that objects in cycles (and those touched by such objects) cannot be collectedstackheap1211110000Problems with Reference Counting
Standard problem is that objects in cycles (and those touched by such objects) cannot be collectedContaminated gc will collect such objectsOverhead of counting can be highUntyped stack complicates thingsstackheap1211110000Problems with Reference Counting
The Untyped StackThe stack is a collection of untyped cellsIn JVM, safety is verified at class-load timeNo need to tag stack locations with what they containLeads to imprecision in all gc methodsstackheapHeapAddress?
IdeaWhen a stack frame pops, all of its cells are deadDont worry about tracking cell pointersInstead, associate an object with the last stack frame that can reference the object
Reference Counting Approachs is zero or one, indicating none or at least one stack reference to the objecth precisely reflects the number of heap references to the objectIf s+h=0 object is deadsh
Our treatment of stack activityObject is associated with the last-to-be-popped frame that can reference the objectstack
Our treatment of stack activityObject is associated with the last-to-be-popped frame that can reference the objectWhen that frame popsIf object is returned, the receiving frame owns the objectstack
Our treatment of stack activityObject is associated with the last-to-be-popped frame that can reference the objectWhen that frame popsOtherwise the object is deadstack
Our reference-counting implementationThe objects associated with the frame are linked togetherstackheap01201frame1
Our reference-counting implementationThe objects associated with the frame are linked togetherWhen a stack frame pops, all of its cells no longer can point at anything
stackheap01201frame1
Our reference-counting implementationThe objects associated with the frame are linked togetherWhen a stack frame pops, all of its cells no longer can point at anythingThis object is unlinked, but still thought to be live
stackheap01201frame1
Our reference-counting implementationThe objects associated with the frame are linked togetherWhen a stack frame pops, all of its cells no longer can point at anythingThis object is dead and is collected
stackheap01201frame1
Our reference-counting implementationThe objects associated with the frame are linked togetherWhen a stack frame pops, all of its cells no longer can point at anythingThis object is also dead
stackheap0201frame1
Our reference-counting implementationThe objects associated with the frame are linked togetherWhen a stack frame pops, all of its cells no longer can point at anythingThis object is still live
stackheap101frame1
Our reference-counting implementationThe objects associated with the frame are linked togetherWhen a stack frame pops, all of its cells no longer can point at anythingNow the frame is gone
stackheap101frame1
Our reference-counting implementationThe objects associated with the frame are linked togetherWhen a stack frame pops, all of its cells no longer can point at anythingThis object was linked to its frame all along
stackheap101frame1
Our reference-counting implementationThe objects associated with the frame are linked togetherWhen a stack frame pops, all of its cells no longer can point at anythingThis object was linked to its frame all alongWhen heap count becomes zero, the object is scheduled for deletion in that frame
stackheap101frame0
Our reference-counting implementationThe objects associated with the frame are linked togetherWhen a stack frame pops, all of its cells no longer can point at anythingThis object was linked to its frame all alongWhen heap count becomes zero, the object is scheduled for deletion in that frameWhen frame pops, all are dead
stackheap101frame0
Our reference-counting implementationThe objects associated with the frame are linked togetherWhen a stack frame pops, all of its cells no longer can point at anythingThis object was linked to its frame all alongWhen heap count becomes zero, the object is scheduled for deletion in that frameWhen frame pops, all are dead
stackheap001frame0
Our reference-counting implementationThe objects associated with the frame are linked togetherWhen a stack frame pops, all of its cells no longer can point at anythingThis object was linked to its frame all alongWhen heap count becomes zero, the object is scheduled for deletion in that frameWhen frame pops, all are dead
stackheap000frame0
Our reference-counting implementationThe objects associated with the frame are linked togetherWhen a stack frame pops, all of its cells no longer can point at anythingThis object was linked to its frame all alongWhen heap count becomes zero, the object is scheduled for deletion in that frameWhen frame pops, all are dead
stackheap000frame0
Reference CountingPredictable, constant overhead for each JVM instructionputfield decreases count at old pointed-to object, increases count at new pointed-to objectareturn associates object with stack frame if not already associated belowHow well does it do? We shall see!
Contaminated Garbage CollectionNeed to collect objects involved in reference cycles without resorting to marking live objectsIdeaAssociate each object with a stack frame such that when that frame returns, the object is known to be deadLike escape analysis, but dynamic
Contaminated garbage collectionInitially each object is associated with the frame in which it is instantiatedstackACBDE
Contaminated garbage collectionInitially each object is associated with the frame in which it is instantiatedWhen B references A, A becomes as live as BstackACBDE
Contaminated garbage collectionInitially each object is associated with the frame in which it is instantiatedNow A, B, and C are as live as CstackACBDE
Contaminated garbage collectionInitially each object is associated with the frame in which it is instantiatedEven though D is less live than C, it gets contaminatedShould something reference D later, all will be affectedstackACBDE
Contaminated garbage collectionInitially each object is associated with the frame in which it is instantiatedStatic finger of lifeNow all objects appear to live foreverstackACBDE
Contaminated garbage collectionInitially each object is associated with the frame in which it is instantiatedStatic finger of lifeNow all objects appear to live foreverEven if E points away!stackACBDE
Contaminated garbage collectionEvery object is a member of an equilive setAll objects in a set are scheduled for deallocation at the same timeSets are maintained using Tarjans disjoint union/find algorithmNearly constant amount of overhead per operation
Contaminated GCEach equilive set is associated with a framestack
Contaminated GCEach equilive set is associated with a frameSuppose an object in one set references an object in another set (in either direction)stack
Contaminated GCEach equilive set is associated with a frameSuppose an object in one set references an object in another set (in either direction)Contamination!The sets are unionedstack
Contaminated GCEach equilive set is associated with a frameWhen a frame pops, objects associated with it are deadstack
Contaminated GCEach equilive set is associated with a frameWhen a frame pops, objects associated with it are deadstack
Contaminated GCEach equilive set is associated with a frameWhen a frame pops, objects associated with it are deadstack
Summary of methodsReference countingCant handle cyclesHandles pointing at and then awayContaminated GCTolerates cyclesCant track pointing and then pointing awayBoth techniques:Incur cost at putfield, areturn(Nearly) constant overhead per operation
Implementation detailsSUN JDK 1.1 interpreter versionMany subtle places where references are generated: String.intern(), ldc instruction, class loader, JNIEach gc method took about 3 months to implementCan run either method or both in concertFairly optimized, more is possible
Spec benchmark effectiveness
Size1R
20688454391
019604170949431
151948120604564444
033233314434
07767125717103
0717496812
151948119674564430
03668152272920935
100899484490256765
Dante
Both
Nick
None
Size 1
Size 10R
60744634399
0262206401116418
1519484025641104444
011842413194430
80041355372194945613
0774628291
3038964905181264434
07333985603224353
100899484490256765
Dante
Both
Nick
None
Size 10 Relative
Size10A
60744634399
0262206401116418
1519484025641104444
011842413194430
80041355372194945613
0774628291
3038964905181264434
07333985603224353
100899484490256765
Dante
Both
Nick
None
size 10 Absolute
Size1A
20688454391
019604170949431
151948120604564444
033233314434
07767125717103
0717496812
151948119674564430
03668152272920935
100899484490256765
CGC
Both
RefCount
None
Size 1 Absolute
Sheet1
size 1CGCBothRefCountNoneTotalsize 1Dante/TotalNick/TotalBoth/Total
compress206884543915144compress0.13763608090.1424961120.1463841369
jess01960417094943146129jess0.42498211540.79555160530.7955516053
raytrace151948120604564444277052raytrace0.98375756180.43551391070.9839596899
db0332333144348088db0.41085558850.45178041540.4517804154
javac0776712571710326127javac0.29727867720.34538982660.3453898266
mpegaudio07174968127578mpegaudio0.09461599370.10108207970.1010820797
mtrt151948119674564430276108mtrt0.98375273440.43363466470.9839555536
jack03668152272920935410479jack0.89362671420.94899860890.9489986089
checkit100899484490256765120723checkit0.86920470830.86039114340.9439626252
size 10CGCBothRefCountNoneTotalsize 10Dante/TotalNick/TotalBoth/Total
compress607446343995266compress0.15267755410.15324724650.1646410938
jess0262206401116418106649jess0.24585321940.8460557530.846055753
raytrace1519484025641104444559066raytrace0.99185427120.72026200840.992051028
db011842413194430124173db0.95370169040.96432396740.9643239674
javac80041355372194945613211103javac0.67995717730.74601497850.7839301194
mpegaudio07746282919127mpegaudio0.08480333080.09159636240.0915963624
mtrt3038964905181264434798974mtrt0.99429268040.61409257370.9944503826
jack07333985603224353813783jack0.90122059570.97007433190.9700743319
checkit100899484490256765120723checkit0.86920470830.86039114340.9439626252
Sheet2
Sheet3
Spec benchmark effectiveness
Size1R
20688454391
019604170949431
151948120604564444
033233314434
07767125717103
0717496812
151948119674564430
03668152272920935
100899484490256765
Dante
Both
Nick
None
Size 1
Size 10R
60744634399
0262206401116418
1519484025641104444
011842413194430
80041355372194945613
0774628291
3038964905181264434
07333985603224353
100899484490256765
Dante
Both
Nick
None
Size 10 Relative
Size10A
60744634399
0262206401116418
1519484025641104444
011842413194430
80041355372194945613
0774628291
3038964905181264434
07333985603224353
100899484490256765
CGC
Both
RefCount
None
size 10 Absolute
Size1A
20688454391
019604170949431
151948120604564444
033233314434
07767125717103
0717496812
151948119674564430
03668152272920935
100899484490256765
CGC
Both
RefCount
None
Size 1 Absolute
Sheet1
size 1CGCBothRefCountNoneTotalsize 1Dante/TotalNick/TotalBoth/Total
compress206884543915144compress0.13763608090.1424961120.1463841369
jess01960417094943146129jess0.42498211540.79555160530.7955516053
raytrace151948120604564444277052raytrace0.98375756180.43551391070.9839596899
db0332333144348088db0.41085558850.45178041540.4517804154
javac0776712571710326127javac0.29727867720.34538982660.3453898266
mpegaudio07174968127578mpegaudio0.09461599370.10108207970.1010820797
mtrt151948119674564430276108mtrt0.98375273440.43363466470.9839555536
jack03668152272920935410479jack0.89362671420.94899860890.9489986089
checkit100899484490256765120723checkit0.86920470830.86039114340.9439626252
size 10CGCBothRefCountNoneTotalsize 10Dante/TotalNick/TotalBoth/Total
compress607446343995266compress0.15267755410.15324724650.1646410938
jess0262206401116418106649jess0.24585321940.8460557530.846055753
raytrace1519484025641104444559066raytrace0.99185427120.72026200840.992051028
db011842413194430124173db0.95370169040.96432396740.9643239674
javac80041355372194945613211103javac0.67995717730.74601497850.7839301194
mpegaudio07746282919127mpegaudio0.08480333080.09159636240.0915963624
mtrt3038964905181264434798974mtrt0.99429268040.61409257370.9944503826
jack07333985603224353813783jack0.90122059570.97007433190.9700743319
checkit100899484490256765120723checkit0.86920470830.86039114340.9439626252
Sheet2
Sheet3
Exactness of Equilive Sets
Distance to die in frames
Chart4
6152
3679
6709
503
62
18
2481
jess
Size1R
20688454391
019604170949431
151948120604564444
033233314434
07767125717103
0717496812
151948119674564430
03668152272920935
100899484490256765
CGC
Both
RefCount
None
Size 1
Size 10R
60744634399
0262206401116418
1519484025641104444
011842413194430
80041355372194945613
0774628291
3038964905181264434
07333985603224353
100899484490256765
CGC
Both
RefCount
None
Size 10 Relative
Size10A
60744634399
0262206401116418
1519484025641104444
011842413194430
80041355372194945613
0774628291
3038964905181264434
07333985603224353
100899484490256765
CGC
Both
RefCount
None
size 10 Absolute
Size1A
20688454391
019604170949431
151948120604564444
033233314434
07767125717103
0717496812
151948119674564430
03668152272920935
100899484490256765
CGC
Both
RefCount
None
Size 1 Absolute
Sheet1
size 1CGCBothRefCountNoneTotalsize 1Dante/TotalNick/TotalBoth/Total
compress206884543915144compress0.13763608090.1424961120.1463841369
jess01960417094943146129jess0.42498211540.79555160530.7955516053
raytrace151948120604564444277052raytrace0.98375756180.43551391070.9839596899
db0332333144348088db0.41085558850.45178041540.4517804154
javac0776712571710326127javac0.29727867720.34538982660.3453898266
mpegaudio07174968127578mpegaudio0.09461599370.10108207970.1010820797
mtrt151948119674564430276108mtrt0.98375273440.43363466470.9839555536
jack03668152272920935410479jack0.89362671420.94899860890.9489986089
checkit100899484490256765120723checkit0.86920470830.86039114340.9439626252
size 10CGCBothRefCountNoneTotalsize 10Dante/TotalNick/TotalBoth/Total
compress607446343995266compress0.15267755410.15324724650.1646410938
jess0262206401116418106649jess0.24585321940.8460557530.846055753
raytrace1519484025641104444559066raytrace0.99185427120.72026200840.992051028
db011842413194430124173db0.95370169040.96432396740.9643239674
javac80041355372194945613211103javac0.67995717730.74601497850.7839301194
mpegaudio07746282919127mpegaudio0.08480333080.09159636240.0915963624
mtrt3038964905181264434798974mtrt0.99429268040.61409257370.9944503826
jack07333985603224353813783jack0.90122059570.97007433190.9700743319
checkit100899484490256765120723checkit0.86920470830.86039114340.9439626252
Size of equilive sets
Benchmark123456--10>10
compress206110327212
Benchmark123456--10>10
jess33801829315819681031
Benchmark123456--10>10
raytrace40516949115031835342782
Benchmark123456--10>10
db8191383214213
Benchmark123456--10>10
javac3413640340176142722
Benchmark123456--10>10
mpegaudio214108398211
Benchmark123456--10>10
mtrt40323936614761799242782
Benchmark123456--10>10
jack1360018546313517471930271
Distance to die
Benchmark012345>5
compress17419315884642511
Benchmark012345>5
jess61523679670950362182481
Benchmark012345>5
raytrace3580623823290711387611449638315144
Benchmark012345>5
db66762012076037222129
Benchmark012345>5
javac36021954134022140688157
Benchmark012345>5
mpegaudio18120417374561811
Benchmark012345>5
mtrt35581237592900313685112606287152047
Benchmark012345>5
jack799726307119495252117172215
Sheet1
jess
Sheet2
Sheet3
Chart5
35806
23823
29071
13876
11449
6383
15144
raytrace
Size1R
20688454391
019604170949431
151948120604564444
033233314434
07767125717103
0717496812
151948119674564430
03668152272920935
100899484490256765
CGC
Both
RefCount
None
Size 1
Size 10R
60744634399
0262206401116418
1519484025641104444
011842413194430
80041355372194945613
0774628291
3038964905181264434
07333985603224353
100899484490256765
CGC
Both
RefCount
None
Size 10 Relative
Size10A
60744634399
0262206401116418
1519484025641104444
011842413194430
80041355372194945613
0774628291
3038964905181264434
07333985603224353
100899484490256765
CGC
Both
RefCount
None
size 10 Absolute
Size1A
20688454391
019604170949431
151948120604564444
033233314434
07767125717103
0717496812
151948119674564430
03668152272920935
100899484490256765
CGC
Both
RefCount
None
Size 1 Absolute
Sheet1
size 1CGCBothRefCountNoneTotalsize 1Dante/TotalNick/TotalBoth/Total
compress206884543915144compress0.13763608090.1424961120.1463841369
jess01960417094943146129jess0.42498211540.79555160530.7955516053
raytrace151948120604564444277052raytrace0.98375756180.43551391070.9839596899
db0332333144348088db0.41085558850.45178041540.4517804154
javac0776712571710326127javac0.29727867720.34538982660.3453898266
mpegaudio07174968127578mpegaudio0.09461599370.10108207970.1010820797
mtrt151948119674564430276108mtrt0.98375273440.43363466470.9839555536
jack03668152272920935410479jack0.89362671420.94899860890.9489986089
checkit100899484490256765120723checkit0.86920470830.86039114340.9439626252
size 10CGCBothRefCountNoneTotalsize 10Dante/TotalNick/TotalBoth/Total
compress607446343995266compress0.15267755410.15324724650.1646410938
jess0262206401116418106649jess0.24585321940.8460557530.846055753
raytrace1519484025641104444559066raytrace0.99185427120.72026200840.992051028
db011842413194430124173db0.95370169040.96432396740.9643239674
javac80041355372194945613211103javac0.67995717730.74601497850.7839301194
mpegaudio07746282919127mpegaudio0.08480333080.09159636240.0915963624
mtrt3038964905181264434798974mtrt0.99429268040.61409257370.9944503826
jack07333985603224353813783jack0.90122059570.97007433190.9700743319
checkit100899484490256765120723checkit0.86920470830.86039114340.9439626252
Size of equilive sets
Benchmark123456--10>10
compress206110327212
Benchmark123456--10>10
jess33801829315819681031
Benchmark123456--10>10
raytrace40516949115031835342782
Benchmark123456--10>10
db8191383214213
Benchmark123456--10>10
javac3413640340176142722
Benchmark123456--10>10
mpegaudio214108398211
Benchmark123456--10>10
mtrt40323936614761799242782
Benchmark123456--10>10
jack1360018546313517471930271
Distance to die
Benchmark012345>5
compress17419315884642511
Benchmark012345>5
jess61523679670950362182481
Benchmark012345>5
raytrace3580623823290711387611449638315144
Benchmark012345>5
db66762012076037222129
Benchmark012345>5
javac36021954134022140688157
Benchmark012345>5
mpegaudio18120417374561811
Benchmark012345>5
mtrt35581237592900313685112606287152047
Benchmark012345>5
jack799726307119495252117172215
Sheet1
raytrace
Sheet2
Sheet3
Chart6
667
620
1207
603
72
22
129
db
Size1R
20688454391
019604170949431
151948120604564444
033233314434
07767125717103
0717496812
151948119674564430
03668152272920935
100899484490256765
CGC
Both
RefCount
None
Size 1
Size 10R
60744634399
0262206401116418
1519484025641104444
011842413194430
80041355372194945613
0774628291
3038964905181264434
07333985603224353
100899484490256765
CGC
Both
RefCount
None
Size 10 Relative
Size10A
60744634399
0262206401116418
1519484025641104444
011842413194430
80041355372194945613
0774628291
3038964905181264434
07333985603224353
100899484490256765
CGC
Both
RefCount
None
size 10 Absolute
Size1A
20688454391
019604170949431
151948120604564444
033233314434
07767125717103
0717496812
151948119674564430
03668152272920935
100899484490256765
CGC
Both
RefCount
None
Size 1 Absolute
Sheet1
size 1CGCBothRefCountNoneTotalsize 1Dante/TotalNick/TotalBoth/Total
compress206884543915144compress0.13763608090.1424961120.1463841369
jess01960417094943146129jess0.42498211540.79555160530.7955516053
raytrace151948120604564444277052raytrace0.98375756180.43551391070.9839596899
db0332333144348088db0.41085558850.45178041540.4517804154
javac0776712571710326127javac0.29727867720.34538982660.3453898266
mpegaudio07174968127578mpegaudio0.09461599370.10108207970.1010820797
mtrt151948119674564430276108mtrt0.98375273440.43363466470.9839555536
jack03668152272920935410479jack0.89362671420.94899860890.9489986089
checkit100899484490256765120723checkit0.86920470830.86039114340.9439626252
size 10CGCBothRefCountNoneTotalsize 10Dante/TotalNick/TotalBoth/Total
compress607446343995266compress0.15267755410.15324724650.1646410938
jess0262206401116418106649jess0.24585321940.8460557530.846055753
raytrace1519484025641104444559066raytrace0.99185427120.72026200840.992051028
db011842413194430124173db0.95370169040.96432396740.9643239674
javac80041355372194945613211103javac0.67995717730.74601497850.7839301194
mpegaudio07746282919127mpegaudio0.08480333080.09159636240.0915963624
mtrt3038964905181264434798974mtrt0.99429268040.61409257370.9944503826
jack07333985603224353813783jack0.90122059570.97007433190.9700743319
checkit100899484490256765120723checkit0.86920470830.86039114340.9439626252
Size of equilive sets
Benchmark123456--10>10
compress206110327212
Benchmark123456--10>10
jess33801829315819681031
Benchmark123456--10>10
raytrace40516949115031835342782
Benchmark123456--10>10
db8191383214213
Benchmark123456--10>10
javac3413640340176142722
Benchmark123456--10>10
mpegaudio214108398211
Benchmark123456--10>10
mtrt40323936614761799242782
Benchmark123456--10>10
jack1360018546313517471930271
Distance to die
Benchmark012345>5
compress17419315884642511
Benchmark012345>5
jess61523679670950362182481
Benchmark012345>5
raytrace3580623823290711387611449638315144
Benchmark012345>5
db66762012076037222129
Benchmark012345>5
javac36021954134022140688157
Benchmark012345>5
mpegaudio18120417374561811
Benchmark012345>5
mtrt35581237592900313685112606287152047
Benchmark012345>5
jack799726307119495252117172215
Sheet1
db
Sheet2
Sheet3
Chart7
3602
1954
1340
221
406
88
157
javac
Size1R
20688454391
019604170949431
151948120604564444
033233314434
07767125717103
0717496812
151948119674564430
03668152272920935
100899484490256765
CGC
Both
RefCount
None
Size 1
Size 10R
60744634399
0262206401116418
1519484025641104444
011842413194430
80041355372194945613
0774628291
3038964905181264434
07333985603224353
100899484490256765
CGC
Both
RefCount
None
Size 10 Relative
Size10A
60744634399
0262206401116418
1519484025641104444
011842413194430
80041355372194945613
0774628291
3038964905181264434
07333985603224353
100899484490256765
CGC
Both
RefCount
None
size 10 Absolute
Size1A
20688454391
019604170949431
151948120604564444
033233314434
07767125717103
0717496812
151948119674564430
03668152272920935
100899484490256765
CGC
Both
RefCount
None
Size 1 Absolute
Sheet1
size 1CGCBothRefCountNoneTotalsize 1Dante/TotalNick/TotalBoth/Total
compress206884543915144compress0.13763608090.1424961120.1463841369
jess01960417094943146129jess0.42498211540.79555160530.7955516053
raytrace151948120604564444277052raytrace0.98375756180.43551391070.9839596899
db0332333144348088db0.41085558850.45178041540.4517804154
javac0776712571710326127javac0.29727867720.34538982660.3453898266
mpegaudio07174968127578mpegaudio0.09461599370.10108207970.1010820797
mtrt151948119674564430276108mtrt0.98375273440.43363466470.9839555536
jack03668152272920935410479jack0.89362671420.94899860890.9489986089
checkit100899484490256765120723checkit0.86920470830.86039114340.9439626252
size 10CGCBothRefCountNoneTotalsize 10Dante/TotalNick/TotalBoth/Total
compress607446343995266compress0.15267755410.15324724650.1646410938
jess0262206401116418106649jess0.24585321940.8460557530.846055753
raytrace1519484025641104444559066raytrace0.99185427120.72026200840.992051028
db011842413194430124173db0.95370169040.96432396740.9643239674
javac80041355372194945613211103javac0.67995717730.74601497850.7839301194
mpegaudio07746282919127mpegaudio0.08480333080.09159636240.0915963624
mtrt3038964905181264434798974mtrt0.99429268040.61409257370.9944503826
jack07333985603224353813783jack0.90122059570.97007433190.9700743319
checkit100899484490256765120723checkit0.86920470830.86039114340.9439626252
Size of equilive sets
Benchmark123456--10>10
compress206110327212
Benchmark123456--10>10
jess33801829315819681031
Benchmark123456--10>10
raytrace40516949115031835342782
Benchmark123456--10>10
db8191383214213
Benchmark123456--10>10
javac3413640340176142722
Benchmark123456--10>10
mpegaudio214108398211
Benchmark123456--10>10
mtrt40323936614761799242782
Benchmark123456--10>10
jack1360018546313517471930271
Distance to die
Benchmark012345>5
compress17419315884642511
Benchmark012345>5
jess61523679670950362182481
Benchmark012345>5
raytrace3580623823290711387611449638315144
Benchmark012345>5
db66762012076037222129
Benchmark012345>5
javac36021954134022140688157
Benchmark012345>5
mpegaudio18120417374561811
Benchmark012345>5
mtrt35581237592900313685112606287152047
Benchmark012345>5
jack799726307119495252117172215
Sheet1
javac
Sheet2
Sheet3
Chart8
181
204
173
74
56
18
11
mpegaudio
Size1R
20688454391
019604170949431
151948120604564444
033233314434
07767125717103
0717496812
151948119674564430
03668152272920935
100899484490256765
CGC
Both
RefCount
None
Size 1
Size 10R
60744634399
0262206401116418
1519484025641104444
011842413194430
80041355372194945613
0774628291
3038964905181264434
07333985603224353
100899484490256765
CGC
Both
RefCount
None
Size 10 Relative
Size10A
60744634399
0262206401116418
1519484025641104444
011842413194430
80041355372194945613
0774628291
3038964905181264434
07333985603224353
100899484490256765
CGC
Both
RefCount
None
size 10 Absolute
Size1A
20688454391
019604170949431
151948120604564444
033233314434
07767125717103
0717496812
151948119674564430
03668152272920935
100899484490256765
CGC
Both
RefCount
None
Size 1 Absolute
Sheet1
size 1CGCBothRefCountNoneTotalsize 1Dante/TotalNick/TotalBoth/Total
compress206884543915144compress0.13763608090.1424961120.1463841369
jess01960417094943146129jess0.42498211540.79555160530.7955516053
raytrace151948120604564444277052raytrace0.98375756180.43551391070.9839596899
db0332333144348088db0.41085558850.45178041540.4517804154
javac0776712571710326127javac0.29727867720.34538982660.3453898266
mpegaudio07174968127578mpegaudio0.09461599370.10108207970.1010820797
mtrt151948119674564430276108mtrt0.98375273440.43363466470.9839555536
jack03668152272920935410479jack0.89362671420.94899860890.9489986089
checkit100899484490256765120723checkit0.86920470830.86039114340.9439626252
size 10CGCBothRefCountNoneTotalsize 10Dante/TotalNick/TotalBoth/Total
compress607446343995266compress0.15267755410.15324724650.1646410938
jess0262206401116418106649jess0.24585321940.8460557530.846055753
raytrace1519484025641104444559066raytrace0.99185427120.72026200840.992051028
db011842413194430124173db0.95370169040.96432396740.9643239674
javac80041355372194945613211103javac0.67995717730.74601497850.7839301194
mpegaudio07746282919127mpegaudio0.08480333080.09159636240.0915963624
mtrt3038964905181264434798974mtrt0.99429268040.61409257370.9944503826
jack07333985603224353813783jack0.90122059570.97007433190.9700743319
checkit100899484490256765120723checkit0.86920470830.86039114340.9439626252
Size of equilive sets
Benchmark123456--10>10
compress206110327212
Benchmark123456--10>10
jess33801829315819681031
Benchmark123456--10>10
raytrace40516949115031835342782
Benchmark123456--10>10
db8191383214213
Benchmark123456--10>10
javac3413640340176142722
Benchmark123456--10>10
mpegaudio214108398211
Benchmark123456--10>10
mtrt40323936614761799242782
Benchmark123456--10>10
jack1360018546313517471930271
Distance to die
Benchmark012345>5
compress17419315884642511
Benchmark012345>5
jess61523679670950362182481
Benchmark012345>5
raytrace3580623823290711387611449638315144
Benchmark012345>5
db66762012076037222129
Benchmark012345>5
javac36021954134022140688157
Benchmark012345>5
mpegaudio18120417374561811
Benchmark012345>5
mtrt35581237592900313685112606287152047
Benchmark012345>5
jack799726307119495252117172215
Sheet1
mpegaudio
Sheet2
Sheet3
Chart9
7997
263071
19495
2521
1717
22
15
jack
Size1R
20688454391
019604170949431
151948120604564444
033233314434
07767125717103
0717496812
151948119674564430
03668152272920935
100899484490256765
CGC
Both
RefCount
None
Size 1
Size 10R
60744634399
0262206401116418
1519484025641104444
011842413194430
80041355372194945613
0774628291
3038964905181264434
07333985603224353
100899484490256765
CGC
Both
RefCount
None
Size 10 Relative
Size10A
60744634399
0262206401116418
1519484025641104444
011842413194430
80041355372194945613
0774628291
3038964905181264434
07333985603224353
100899484490256765
CGC
Both
RefCount
None
size 10 Absolute
Size1A
20688454391
019604170949431
151948120604564444
033233314434
07767125717103
0717496812
151948119674564430
03668152272920935
100899484490256765
CGC
Both
RefCount
None
Size 1 Absolute
Sheet1
size 1CGCBothRefCountNoneTotalsize 1Dante/TotalNick/TotalBoth/Total
compress206884543915144compress0.13763608090.1424961120.1463841369
jess01960417094943146129jess0.42498211540.79555160530.7955516053
raytrace151948120604564444277052raytrace0.98375756180.43551391070.9839596899
db0332333144348088db0.41085558850.45178041540.4517804154
javac0776712571710326127javac0.29727867720.34538982660.3453898266
mpegaudio07174968127578mpegaudio0.09461599370.10108207970.1010820797
mtrt151948119674564430276108mtrt0.98375273440.43363466470.9839555536
jack03668152272920935410479jack0.89362671420.94899860890.9489986089
checkit100899484490256765120723checkit0.86920470830.86039114340.9439626252
size 10CGCBothRefCountNoneTotalsize 10Dante/TotalNick/TotalBoth/Total
compress607446343995266compress0.15267755410.15324724650.1646410938
jess0262206401116418106649jess0.24585321940.8460557530.846055753
raytrace1519484025641104444559066raytrace0.99185427120.72026200840.992051028
db011842413194430124173db0.95370169040.96432396740.9643239674
javac80041355372194945613211103javac0.67995717730.74601497850.7839301194
mpegaudio07746282919127mpegaudio0.08480333080.09159636240.0915963624
mtrt3038964905181264434798974mtrt0.99429268040.61409257370.9944503826
jack07333985603224353813783jack0.90122059570.97007433190.9700743319
checkit100899484490256765120723checkit0.86920470830.86039114340.9439626252
Size of equilive sets
Benchmark123456--10>10
compress206110327212
Benchmark123456--10>10
jess33801829315819681031
Benchmark123456--10>10
raytrace40516949115031835342782
Benchmark123456--10>10
db8191383214213
Benchmark123456--10>10
javac3413640340176142722
Benchmark123456--10>10
mpegaudio214108398211
Benchmark123456--10>10
mtrt40323936614761799242782
Benchmark123456--10>10
jack1360018546313517471930271
Distance to die
Benchmark012345>5
compress17419315884642511
Benchmark012345>5
jess61523679670950362182481
Benchmark012345>5
raytrace3580623823290711387611449638315144
Benchmark012345>5
db66762012076037222129
Benchmark012345>5
javac36021954134022140688157
Benchmark012345>5
mpegaudio18120417374561811
Benchmark012345>5
mtrt35581237592900313685112606287152047
Benchmark012345>5
jack799726307119495252117172215
Sheet1
jack
Sheet2
Sheet3
Speed of CGC
Chart12
0.991.05
11.24
11.2
11.14
11.17
0.991.04
0.981.2
11.1
over JDK big heap
over JDK same heap
Size1R
20688454391
019604170949431
151948120604564444
033233314434
07767125717103
0717496812
151948119674564430
03668152272920935
100899484490256765
CGC
Both
RefCount
None
Size 1
Size 10R
60744634399
0262206401116418
1519484025641104444
011842413194430
80041355372194945613
0774628291
3038964905181264434
07333985603224353
100899484490256765
CGC
Both
RefCount
None
Size 10 Relative
Size10A
60744634399
0262206401116418
1519484025641104444
011842413194430
80041355372194945613
0774628291
3038964905181264434
07333985603224353
100899484490256765
CGC
Both
RefCount
None
size 10 Absolute
Size1A
20688454391
019604170949431
151948120604564444
033233314434
07767125717103
0717496812
151948119674564430
03668152272920935
100899484490256765
CGC
Both
RefCount
None
Size 1 Absolute
Sheet1
size 1CGCBothRefCountNoneTotalsize 1Dante/TotalNick/TotalBoth/Total
compress206884543915144compress0.13763608090.1424961120.1463841369
jess01960417094943146129jess0.42498211540.79555160530.7955516053
raytrace151948120604564444277052raytrace0.98375756180.43551391070.9839596899
db0332333144348088db0.41085558850.45178041540.4517804154
javac0776712571710326127javac0.29727867720.34538982660.3453898266
mpegaudio07174968127578mpegaudio0.09461599370.10108207970.1010820797
mtrt151948119674564430276108mtrt0.98375273440.43363466470.9839555536
jack03668152272920935410479jack0.89362671420.94899860890.9489986089
checkit100899484490256765120723checkit0.86920470830.86039114340.9439626252
size 10CGCBothRefCountNoneTotalsize 10Dante/TotalNick/TotalBoth/Total
compress607446343995266compress0.15267755410.15324724650.1646410938
jess0262206401116418106649jess0.24585321940.8460557530.846055753
raytrace1519484025641104444559066raytrace0.99185427120.72026200840.992051028
db011842413194430124173db0.95370169040.96432396740.9643239674
javac80041355372194945613211103javac0.67995717730.74601497850.7839301194
mpegaudio07746282919127mpegaudio0.08480333080.09159636240.0915963624
mtrt3038964905181264434798974mtrt0.99429268040.61409257370.9944503826
jack07333985603224353813783jack0.90122059570.97007433190.9700743319
checkit100899484490256765120723checkit0.86920470830.86039114340.9439626252
Size of equilive sets
Benchmark123456--10>10
compress206110327212
Benchmark123456--10>10
jess33801829315819681031
Benchmark123456--10>10
raytrace40516949115031835342782
Benchmark123456--10>10
db8191383214213
Benchmark123456--10>10
javac3413640340176142722
Benchmark123456--10>10
mpegaudio214108398211
Benchmark123456--10>10
mtrt40323936614761799242782
Benchmark123456--10>10
jack1360018546313517471930271
Distance to die
Benchmark012345>5
compress17419315884642511
Benchmark012345>5
jess61523679670950362182481
Benchmark012345>5
raytrace3580623823290711387611449638315144
Benchmark012345>5
db66762012076037222129
Benchmark012345>5
javac36021954134022140688157
Benchmark012345>5
mpegaudio18120417374561811
Benchmark012345>5
mtrt35581237592900313685112606287152047
Benchmark012345>5
jack799726307119495252117172215
Benchmarkover JDK big heapover JDK same heap
compress0.991.05
jess11.24
raytrace11.2
db11.14
javac11.17
mpegaudio0.991.04
mtrt0.981.2
jack11.1
Sheet1
00
00
00
00
00
00
00
00
over JDK big heap
over JDK same heap
Sheet2
Sheet3
Speedups of Mark-Free Approaches
Chart1
1.08587519711.05
1.08712328771.24
1.03173100871.2
1.0466379311.14
1.12153846151.17
1.02357534551.04
1.05431407481.2
1.04654699291.1
RefCount
CGC
Sheet1
size 1myjavavanjavadanjava-fh on ->myjavapaperscaleBenchmarkRefCountCGC
_201_compress416.29694.63413.16399.511.05433.818compress1.091.05
_202_jess8.2612.97.048.031.248.7296jess1.091.24
_205_raytrace42.41507.06 (pl)34.5240.151.241.424raytrace1.031.2
_209_db2.313.12.132.321.142.4282db1.051.14
_213_javac5.127.444.865.071.175.6862javac1.121.17
_222_mpegaudio45.5666.5144.8745.591.0446.6648mpegaudio1.021.04
_227_mtrt42.18printlist39.291.241.424mtrt1.051.2
_228_jack89.18139.3383.2187.461.191.531jack1.051.1
size 10
_201_compress537.12786.59460.9477.96
_202_jess72.11167.8563.2165.75
_205_raytrace110.97639.7899.34105.26
_209_db64.5146.9944.0158.73
_213_javac46.671.8837.3938.04
_222_mpegaudio529.37655.21459.8461.21
_227_mtrt146.891139.49125.01144.44
_228_jack196.02285.62164.33173.69
size 100
_201_compress5009.45208.18
_202_jessBombBomb
_205_raytraceBomb
_209_dbBomb
Sheet1
00
00
00
00
00
00
00
00
RefCount
CGC
Sheet2
Sheet3
Future PlansVHDL simulation of more efficient buddy allocatorVHDL simulation of garbage collection methodsBetter buddy defragmentationExperiment with informed allocationComparison/integration with other IRAM-based methods (with Krishna Kavi)
Informed Storage ManagementEvidence that programs allocate many objects of the same size
Benchmark jack20% fragmentation
Chart2
20.4308333079
19.4737394356
0
21.2995305716
0
0
0
21.6032066074
0
0
0
0
0
0
0
13.7349212677
0
0
0
0
0
0
0
0
0
9.3837042925
0
0
0
0
0
0
0
0
0
0
0
8.6969675262
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
8.5849625007
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
7.7879025594
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
5.672425342
0
0
0
0
3
0
0
2.3219280949
1.5849625007
Buddy block-size (log)
Number of requests (log)
jack_s100_distributions-srt
Jack
Size(log)Num(log)wasted bytesTotal Buddysingle buddy
81413493320.4308333079011307944813141349320.4308333079320.4308333079
16728081419.47373943560116492961611472808119.4737394356419.4737394356
242518452521.2641058038201476168059046432115251845221.264105803800
3262605515.93399026330200336032005258105721.2995305716521.2995305716
40171744617.38990017284121856109916166411617174417.389900172800
481804104620.78285107642886566411546265664006197584820.914040535400
56854238619.704278550868339045467123264006283008621.432414463300
64355675618.44020004702276320064006318576121.6032066074621.6032066074
7277079.588714635643120985601281177709.588714635600
802888711.4958550269138624369664128007365811.836839359700
885611712.4540421975224440718208128007926913.178197984600
962291711.1617617433733122932481280071156013.496853777400
1041827710.8352609186438482338561280071338713.708545071400
11219377.59245703733088247041280071358013.729195859100
1201073.32192809498012801280071359013.730257835700
1284475.4594316186056321280071363413.7349212677713.7349212677
13649288.9425145053590401259522561184928.942514505300
1441684179240962560085088.988684686800
152381.58496250073127682560085118.997179480900
1685785.83289001425016145922560085689.149747119500
176983.169925001472023042560085779.172427508600
1842084.3219280949144051202560085979.221587121300
200381.58496250071687682560086009.228818690500
2083685.1699250014172892162560086369.312882955300
224180322562560086379.315149562300
2483184.954196310424879362560086689.383704292589.3837042925
26421397.7347096202528241090565121192137.734709620200
27229148010245120092157.748192849600
2801902325125120092167.754887502200
2883795.20945336568288189445120092537.982993574700
29629143210245120092557.994353436900
3284395.42626475477912220165120092988.219168520500
3521901605125120092998.224001674200
3682694.70043971813744133125120093258.344295907900
4083094.90689059563120153605120093558.471675214400
41689376840965120093638.50382573800
4482694.70043971811664133125120093898.60362634500
4882694.7004397181624133125120094158.696967526298.6969675262
520193107.592457037397272197632102411101937.592457037300
52826104.70043971811289626624102400102197.774787059600
56817104.0874628413775217408102400102367.882643049400
57611004481024102400102377.888743248900
60815103.9068905956624015360102400102527.977279923500
64824104.5849625007902424576102400102768.108524456800
68813103.7004397181436813312102400102898.174925682500
69611003281024102400102908.1799090900
72813103.7004397181384813312102400103038.243173983500
76811103.4594316186281611264102400103148.294620748900
80811103.4594316186237611264102400103258.344295907900
81611002081024102400103268.348728154200
82421014002048102400103288.357552004600
83221013842048102400103308.366322214200
84811103.4594316186193611264102400103418.41362792900
88811103.4594316186149611264102400103528.459431618600
92811103.4594316186105611264102400103638.50382573800
96811103.459431618661611264102400103748.546894459900
100810103.321928094916010240102400103848.5849625007108.5849625007
1032106116.7279204546107696217088204811111066.727920454600
104810113.32192809491000020480204800111166.857980995100
10889113.1699250014864018432204800111256.965784284700
11289113.1699250014828018432204800111347.066089190500
115211108962048204800111357.076815597100
11688113704016384204800111437.159871336800
12087112.8073549221588014336204800111507.228818690500
12487112.8073549221560014336204800111577.294620748900
128810113.3219280949760020480204800111677.383704292500
1328411228808192204800111717.417852514900
1368411227208192204800111757.451211111800
1408411225608192204800111797.483815777300
14483111.584962500718006144204800111827.507794640200
14883111.584962500716806144204800111857.531381460500
15283111.584962500715606144204800111887.554588851700
15683111.584962500714406144204800111917.57742882800
16083111.584962500713206144204800111947.599912842200
162411104242048204800111957.607330313700
164011104082048204800111967.614709844100
16483111.584962500712006144204800111997.636624620500
16883111.584962500710806144204800112027.658211482800
17283111.58496250079606144204800112057.679480099500
17683111.58496250078406144204800112087.700439718100
18083111.58496250077206144204800112117.721099188700
184821114004096204800112137.734709620200
188821113204096204800112157.748192849600
192821112404096204800112177.761551232400
196821111604096204800112197.774787059600
2048211104096204800112217.7879025594117.7879025594
2056112020404096409611121000
20882121401681924096001231.584962500700
21282121393681924096001252.321928094900
21682121385681924096001272.807354922100
22082121377681924096001293.169925001400
224821213696819240960012113.459431618600
228821213616819240960012133.700439718100
230411201792409640960012143.807354922100
23282121353681924096001216400
236821213456819240960012184.169925001400
240821213376819240960012204.321928094900
241611201680409640960012214.392317422800
244821213296819240960012234.523561956100
248821213216819240960012254.643856189800
252821213136819240960012274.754887502200
253621213120819240960012294.857980995100
25687122.8073549221106962867240960012365.169925001400
260811201488409640960012375.209453365600
264811201448409640960012385.247927513400
268811201408409640960012395.285402218900
272811201368409640960012405.321928094900
276811201328409640960012415.357552004600
280811201288409640960012425.392317422800
284811201248409640960012435.426264754700
288811201208409640960012445.459431618600
292811201168409640960012455.491853096300
296811201128409640960012465.523561956100
300811201088409640960012475.554588851700
304811201048409640960012485.584962500700
308811201008409640960012495.614709844100
32721120824409640960012505.643856189800
36161120480409640960012515.672425342125.672425342
4104113040888192819211131000
4608113035848192819200132100
51283131.58496250079192245768192001352.321928094900
65361130165681928192001362.584962500700
80722131240163848192001383133
82003141.5849625007245524915216384111431.584962500700
921611407168163841638400144200
10248114061361638416384001452.3219280949142.3219280949
163923151.5849625007491289830432768111531.5849625007151.5849625007
611697763128688881
CompressSize(log)Num(log)
831238.285402218902496811543128.285402218938.2854022189
162817411.45994384840450721611155281711.4599438484411.4599438484
241534510.583082767512272490883211156153410.583082767500
3219657.6147098441062723200156173010.7565563225510.7565563225
408366.3750394313199253126411157836.375039431300
4810666.72792045461696678464001571897.562242424200
5611166.7944158664888710464001573008.228818690500
6411266.80735492210716864001574128.686500527268.6865005272
7212076.9068905956672015360128111581206.906890595600
8018377.5156998383878423424128001583038.243173983500
8815977.3128829553636020352128001584628.851749041400
9610076.6438561898320012800128001585629.134426320200
1045275.700439718112486656128001586149.262094845400
1121874.16992500142882304128001586329.303780748200
120371.584962500724384128001586359.310612781700
128572.32192809490640128001586409.321928094979.3219280949
13610886.75488750221296027648256111591086.754887502200
168281176512256001591106.781359713500
176381.5849625007240768256001591136.820178962400
2001283.58496250076723072256001591256.965784284700
20828196512256001591276.988684686800
2241803225625600159128787
26410496.70043971812579253248512111601046.700439718100
352190160512512001601056.714245517700
416792.80735492216723584512001601126.807354922100
48819024512512001601136.820178962496.8201789624
52054105.75488750222721655296102411161545.754887502200
70411003201024102400161555.781359713500
82421014002048102400161575.832890014200
83221013842048102400161595.8826430494105.8826430494
10322111203240962048111622100
16401110408204820480016231.584962500700
18081110240204820480016242112
20561120204040964096111631000
253621213120819240960016331.584962500700
3272112082440964096001634200
36161120480409640960016352.3219280949122.3219280949
41041130408881928192111641000
65361130165681928192001642100
800825134.64385618984600204800819200164274.7548875022134.7548875022
82003141.58496250072455249152163841116531.5849625007141.5849625007
163923151.58496250074912898304327681116631.5849625007151.5849625007
6554425174.64385618981638200327680013107221167254.6438561898174.6438561898
13800850185.643856189862068001310720026214411168505.6438561898185.6438561898
27600825194.643856189862070001310720052428811169254.6438561898194.6438561898
96256810203.321928094986008010485760104857611170103.3219280949203.3219280949
115712810213.3219280949940024020971520209715211171103.321928094900
128000810213.3219280949817144020971520209715200171204.3219280949214.3219280949
285696810223.32192809491337336041943040419430411172103.321928094900
315392810223.32192809491040376041943040419430400172204.3219280949224.3219280949
1
564666641665656480.3390054593frag
runing sum
raytracesize(log)num(log)diff from before?index0
831223314.9303215420249784812093122314.930321542
16438039418.740699797707008624161121043803918.7406997977
2448352515.5612879452386816154726432112114835215.5612879452
3219627514.2605520523062806432002116797916.0528015189
4010473613.354387142325135267027264112121047313.3543871423
4814067.12928301692240896064002121061313.3735449032
561518610.5679560754121449715264002121213113.5664108612
6424567.93663793901568064002121237613.5952574814
727392712.851749041441395294617612811213739212.8517490414
801202710.23122118075769615385612800213859413.0691140618
8816277.339850002964802073612800213875613.0960562392
968176.339850002925921036812800213883713.1093409688
1045275.70043971811248665612800213888913.1178054117
1121974.2479275134304243212800213890813.1208858428
120371.58496250072438412800213891113.121371626
1284675.52356195610588812800213895713.1287998908
13616487.35755200461968041984256112141647.3575520046
16818088256256002141657.3663222142
176381.5849625007240768256002141687.3923174228
19218064256256002141697.4008794363
2001283.58496250076723072256002141817.4998458871
208381.5849625007144768256002141847.5235619561
22418032256256002141857.5313814605
2648596.4093909361210804352051211215856.4093909361
35219016051251200215866.4262647547
416792.8073549221672358451200215936.5391588111
52025104.64385618981260025600102411216254.6438561898
69611003281024102400216264.7004397181
82421014002048102400216284.8073549221
83221013842048102400216304.9068905956
103221112032409620481121721
16401110408204820480021731.5849625007
205621214080819240961121821
253621213120819240960021842
32721120824409640960021852.3219280949
36161120480409640960021862.5849625007
410411304088819281921121910
653611301656819281920021921
807221312401638481920021942
82003141.58496250072455249152163841122031.5849625007
163923151.58496250074912898304327681122131.5849625007
16000811801021362621442621443122210
1384136119710800.1156233189
jack_s100_distributions-srt
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
num(log)
Block-size (log)
Number of requests (log)
raytrace
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
Buddy block-size (log)
Number of requests (log)
Benchmark raytrace12% fragmentation
Chart1
14.930321542
18.7406997977
16.0528015189
13.5952574814
13.1287998908
7.5313814605
6.5391588111
4.9068905956
1.5849625007
2.5849625007
2
1.5849625007
1.5849625007
0
Buddy block-size (log)
Number of requests (log)
jack_s100_distributions-srt
Jack
Size(log)Num(log)wasted bytesTotal Buddysingle buddy
81413493320.43083330790113079448
16728081419.473739435601164929616
242518452521.2641058038201476168059046432
3262605515.93399026330200336032
40171744617.389900172841218561099161664
481804104620.78285107642886566411546265664
56854238619.704278550868339045467123264
64355675618.44020004702276320064
7277079.58871463564312098560128
802888711.4958550269138624369664128
885611712.4540421975224440718208128
962291711.161761743373312293248128
1041827710.835260918643848233856128
11219377.5924570373308824704128
1201073.3219280949801280128
1284475.459431618605632128
13649288.942514505359040125952256
144168417924096256
152381.5849625007312768256
1685785.8328900142501614592256
176983.16992500147202304256
1842084.321928094914405120256
200381.5849625007168768256
2083685.169925001417289216256
22418032256256
2483184.95419631042487936256
26421397.734709620252824109056512
2722914801024512
280190232512512
2883795.2094533656828818944512
2962914321024512
3284395.4262647547791222016512
352190160512512
3682694.7004397181374413312512
4083094.9068905956312015360512
4168937684096512
4482694.7004397181166413312512
4882694.700439718162413312512
520193107.5924570373972721976321024
52826104.700439718112896266241024
56817104.08746284137752174081024
576110044810241024
60815103.90689059566240153601024
64824104.58496250079024245761024
68813103.70043971814368133121024
696110032810241024
72813103.70043971813848133121024
76811103.45943161862816112641024
80811103.45943161862376112641024
816110020810241024
824210140020481024
832210138420481024
84811103.45943161861936112641024
88811103.45943161861496112641024
92811103.45943161861056112641024
96811103.4594316186616112641024
100810103.3219280949160102401024
1032106116.72792045461076962170882048
104810113.321928094910000204802048
10889113.16992500148640184322048
11289113.16992500148280184322048
1152111089620482048
116881137040163842048
12087112.80735492215880143362048
12487112.80735492215600143362048
128810113.32192809497600204802048
13284112288081922048
13684112272081922048
14084112256081922048
14483111.5849625007180061442048
14883111.5849625007168061442048
15283111.5849625007156061442048
15683111.5849625007144061442048
16083111.5849625007132061442048
1624111042420482048
1640111040820482048
16483111.5849625007120061442048
16883111.5849625007108061442048
17283111.584962500796061442048
17683111.584962500784061442048
18083111.584962500772061442048
1848211140040962048
1888211132040962048
1928211124040962048
1968211116040962048
20482111040962048
20561120204040964096
20882121401681924096
21282121393681924096
21682121385681924096
22082121377681924096
22482121369681924096
22882121361681924096
23041120179240964096
23282121353681924096
23682121345681924096
24082121337681924096
24161120168040964096
24482121329681924096
24882121321681924096
25282121313681924096
25362121312081924096
25687122.807354922110696286724096
26081120148840964096
26481120144840964096
26881120140840964096
27281120136840964096
27681120132840964096
28081120128840964096
28481120124840964096
28881120120840964096
29281120116840964096
29681120112840964096
30081120108840964096
30481120104840964096
30881120100840964096
3272112082440964096
3616112048040964096
41041130408881928192
46081130358481928192
51283131.58496250079192245768192
65361130165681928192
80722131240163848192
82003141.5849625007245524915216384
9216114071681638416384
10248114061361638416384
163923151.5849625007491289830432768
611697763128688880.1955124921frag
CompressSize(log)Num(log)
831238.2854022189024968
162817411.459943848404507216
241534510.5830827675122724908832
3219657.61470984410627232
408366.37503943131992531264
4810666.72792045461696678464
5611166.7944158664888710464
6411266.80735492210716864
7212076.9068905956672015360128
8018377.5156998383878423424128
8815977.3128829553636020352128
9610076.6438561898320012800128
1045275.700439718112486656128
1121874.16992500142882304128
120371.584962500724384128
128572.32192809490640128
13610886.75488750221296027648256
168281176512256
176381.5849625007240768256
2001283.58496250076723072256
20828196512256
22418032256256
26410496.70043971812579253248512
352190160512512
416792.80735492216723584512
48819024512512
52054105.754887502227216552961024
704110032010241024
824210140020481024
832210138420481024
10322111203240962048
1640111040820482048
1808111024020482048
20561120204040964096
25362121312081924096
3272112082440964096
3616112048040964096
41041130408881928192
65361130165681928192
800825134.643856189846002048008192
82003141.5849625007245524915216384
163923151.5849625007491289830432768
6554425174.643856189816382003276800131072
13800850185.6438561898620680013107200262144
27600825194.6438561898620700013107200524288
96256810203.3219280949860080104857601048576
115712810213.32192809499400240209715202097152
128000810213.32192809498171440209715202097152
285696810223.321928094913373360419430404194304
315392810223.321928094910403760419430404194304
564666641665656480.3390054593frag
runing sum
raytracesize(log)num(log)diff from before?index0
831223314.9303215420249784812093122314.930321542
16438039418.740699797707008624161121043803918.7406997977
2448352515.5612879452386816154726432112114835215.5612879452
3219627514.2605520523062806432002116797916.0528015189
4010473613.354387142325135267027264112121047313.3543871423
4814067.12928301692240896064002121061313.3735449032
561518610.5679560754121449715264002121213113.5664108612
6424567.93663793901568064002121237613.5952574814
727392712.851749041441395294617612811213739212.8517490414
801202710.23122118075769615385612800213859413.0691140618
8816277.339850002964802073612800213875613.0960562392
968176.339850002925921036812800213883713.1093409688
1045275.70043971811248665612800213888913.1178054117
1121974.2479275134304243212800213890813.1208858428
120371.58496250072438412800213891113.121371626
1284675.52356195610588812800213895713.1287998908
13616487.35755200461968041984256112141647.3575520046
16818088256256002141657.3663222142
176381.5849625007240768256002141687.3923174228
19218064256256002141697.4008794363
2001283.58496250076723072256002141817.4998458871
208381.5849625007144768256002141847.5235619561
22418032256256002141857.5313814605
2648596.4093909361210804352051211215856.4093909361
35219016051251200215866.4262647547
416792.8073549221672358451200215936.5391588111
52025104.64385618981260025600102411216254.6438561898
69611003281024102400216264.7004397181
82421014002048102400216284.8073549221
83221013842048102400216304.9068905956
103221112032409620481121721
16401110408204820480021731.5849625007
205621214080819240961121821
253621213120819240960021842
32721120824409640960021852.3219280949
36161120480409640960021862.5849625007
410411304088819281921121910
653611301656819281920021921
807221312401638481920021942
82003141.58496250072455249152163841122031.5849625007
163923151.58496250074912898304327681122131.5849625007
16000811801021362621442621443122210
1384136119710800.1156233189
jack_s100_distributions-srt
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
Num(log)
Block size (log)
Number of requests (log)
jack (20% fragmentation)
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
Num(log)
Block size (log)
Number of requests(log)
compress (34% fragmentation)
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
num(log)