I ran a similar test [1] on a 16GB Ubuntu box:
# uname -a
Linux ubuntu-m-16gb-nyc3-01 4.4.0-45-generic #66-Ubuntu SMP Wed Oct 19 14:12:37 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
# cat /etc/issue
Ubuntu 16.04.1 LTS
# ./bin/pharo -vm-display-null pharo-64.image st --quit
memtest.st >& out.log &
Which gave the following (abbreviated) output:
uptime 0h0m0s
memory 70,918,144 bytes
old 61,966,112 bytes (87.4%)
young 2,781,608 bytes (3.9000000000000004%)
used 46,301,016 bytes (65.3%)
free 18,446,704 bytes (26.0%)
GCs 1 (207ms between GCs)
full 0 totalling 0ms (0.0% uptime)
incr 1 totalling 0ms (0.0% uptime), avg 0.0ms
tenures 0
Iteration 1
...
Iteration 8
...
uptime 0h12m44s
memory 5,238,300,672 bytes
old 5,229,348,640 bytes (99.80000000000001%)
young 1,054,128 bytes (0.0%)
used 5,207,806,800 bytes (99.4%)
free 22,595,968 bytes (0.4%)
GCs 23,509 (33ms between GCs)
full 19 totalling 147,969ms (19.400000000000002% uptime), avg 7787.8ms
incr 23490 totalling 143,396ms (18.8% uptime), avg 6.1000000000000005ms
tenures 107,267,532 (avg 0 GCs/tenure)
Since last view 23,508 (33ms between GCs)
uptime 764.4000000000001s
full 19 totalling 147,969ms (19.400000000000002% uptime), avg 7787.8ms
incr 23489 totalling 143,396ms (18.8% uptime), avg 6.1000000000000005ms
tenures 107,267,532 (avg 0 GCs/tenure)
# free -m
total used free shared buff/cache available
Mem: 16047 4632 10647 3 768 11129
Swap: 0 0 0
So, yes, it works on Linux too.
Sven
[1]
| meta hold |
NonInteractiveTranscript stdout install.
Transcript crShow: SmalltalkImage current vm statisticsReport; cr.
hold := (1 to: 8) collect: [ :i |
Transcript crShow: 'Iteration ', i asString.
ASTCache reset.
meta := Dictionary new.
Smalltalk allClassesAndTraits do: [ :each | | classMeta methods |
(classMeta := Dictionary new)
at: #name put: each name asSymbol;
at: #comment put: each comment;
at: #definition put: each definition;
at: #object put: each.
methods := Dictionary new.
classMeta at: #methods put: methods.
each methodsDo: [ :method | | methodMeta |
(methodMeta := Dictionary new)
at: #name put: method selector;
at: #source put: method sourceCode;
at: #ast put: method ast;
at: #args put: method argumentNames asArray;
at: #formatted put: method ast formattedCode;
at: #comment put: (method comment ifNotNil: [ :str | str withoutQuoting ]);
at: #object put: method.
methods at: method selector put: methodMeta ].
meta at: each name asSymbol put: classMeta ].
meta.
].
3 timesRepeat: [ Smalltalk garbageCollect ].
Transcript crShow: SmalltalkImage current vm statisticsReport; cr.
On 9 Nov 2016, at 17:18, phil@highoctane.be wrote:
Ok, I'll try that in the coming days on my desktop box.
I've got 32GB on that box, so it will be interesting.
What would be a good way to stress test the GC?
Phil
On Wed, Nov 9, 2016 at 3:59 PM, Thierry Goubier <thierry.goubier@gmail.com> wrote:
2016-11-09 15:23 GMT+01:00 philippe.back@highoctane.be <philippe.back@gmail.com>:
Anyone having tested such 64 bit goodness on a Linux box?
Only as a professional demo for code developped up to the very last moment on Pharo 32 bits. So I didn't try to explose the available RAM on my laptop (yet).
Thierry
Phil