2016-11-09 23:20 GMT+01:00 Sven Van Caekenberghe <sven@stfx.eu>:
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
# history | grep wget 5 wget http://files.pharo.org/get-files/60/pharo-64.zip 6 wget http://files.pharo.org/sources/PharoV50.sources.zip 7 wget https://bintray.com/estebanlm/pharo-vm/download_file?file_ path=pharo-linux-x86_64threaded.0a4ccdf.zip
# ./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%)
I see yet another bad usage of round:/roundTo: --------------^ Ah, but it was another thread ;)
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