[Webkit-unassigned] [Bug 70995] The GC should be parallel

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Sat Oct 29 22:27:05 PDT 2011


https://bugs.webkit.org/show_bug.cgi?id=70995


Filip Pizlo <fpizlo at apple.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
 Attachment #112647|0                           |1
        is obsolete|                            |




--- Comment #8 from Filip Pizlo <fpizlo at apple.com>  2011-10-29 22:27:05 PST ---
Created an attachment (id=112985)
 --> (https://bugs.webkit.org/attachment.cgi?id=112985&action=review)
the patch

Implemented a bunch of stuff:

- Better memory management for mark stack segments.
- Better load balancing.  It can now scale to 8 processors.
- Autodetection of number of processors.  It still caps itself at 4 threads, though, since that seems to be where we get peak efficiency.



Benchmark report for SunSpider, V8, and Kraken.

VMs tested:
"TipOfTree" at /Volumes/Data/pizlo/quinary/OpenSource/WebKitBuild/Release/jsc
"ParallelGC" at /Volumes/Data/pizlo/senary/OpenSource/WebKitBuild/Release/jsc

Collected 12 samples per benchmark/VM, with 4 VM invocations per benchmark. Emitted a call to gc() between sample
measurements. Used 1 benchmark iteration per VM invocation for warm-up. Used the jsc-specific preciseTime()
function to get microsecond-level timing. Reporting benchmark execution times with 95% confidence intervals in
milliseconds.

                                            TipOfTree               ParallelGC                                   
SunSpider:
   3d-cube                                7.2847+-0.1599          7.2000+-0.1390         might be 1.0118x faster
   3d-morph                               7.6836+-0.1079          7.6069+-0.1119         might be 1.0101x faster
   3d-raytrace                            7.5123+-0.1952          7.4649+-0.1720       
   access-binary-trees                    1.6509+-0.0469          1.6238+-0.0729         might be 1.0167x faster
   access-fannkuch                        6.5595+-0.0676          6.4896+-0.1053         might be 1.0108x faster
   access-nbody                           3.7379+-0.0998          3.7356+-0.0627       
   access-nsieve                          2.5926+-0.0849    ?     2.6093+-0.0612       ?
   bitops-3bit-bits-in-byte               1.2904+-0.0295    ?     1.3312+-0.0385       ? might be 1.0316x slower
   bitops-bits-in-byte                    2.4042+-0.0579          2.3689+-0.0429         might be 1.0149x faster
   bitops-bitwise-and                     3.3795+-0.1010    ?     3.3876+-0.1226       ?
   bitops-nsieve-bits                     5.4380+-0.0857    ?     5.5171+-0.1328       ? might be 1.0145x slower
   controlflow-recursive                  2.1209+-0.0514    ?     2.1224+-0.0579       ?
   crypto-aes                             7.2702+-0.1745    ?     7.3951+-0.1885       ? might be 1.0172x slower
   crypto-md5                             2.7203+-0.0754    ?     2.7662+-0.0691       ? might be 1.0169x slower
   crypto-sha1                            2.4430+-0.0617          2.4351+-0.0454       
   date-format-tofte                     10.0079+-0.1732          9.9916+-0.2204       
   date-format-xparb                      8.8878+-0.1903    !     9.3501+-0.2024       ! definitely 1.0520x slower
   math-cordic                            6.4491+-0.1291          6.2971+-0.0644         might be 1.0241x faster
   math-partial-sums                      7.5129+-0.1028    ?     7.5139+-0.1127       ?
   math-spectral-norm                     2.5601+-0.0628    ?     2.6399+-0.0440       ? might be 1.0312x slower
   regexp-dna                            11.5483+-0.1454         11.4922+-0.1442       
   string-base64                          4.2972+-0.0686    ?     4.4867+-0.1473       ? might be 1.0441x slower
   string-fasta                           6.2632+-0.1289    ?     6.3459+-0.1575       ? might be 1.0132x slower
   string-tagcloud                       11.4555+-0.3263    ?    11.4960+-0.2517       ?
   string-unpack-code                    20.6781+-0.2345    ?    20.7067+-0.3981       ?
   string-validate-input                  5.2387+-0.0995          5.1660+-0.0626         might be 1.0141x faster

   <arithmetic> *                         6.1149+-0.0322    ?     6.1361+-0.0250       ?
   <geometric>                            4.9388+-0.0250    ?     4.9601+-0.0212       ?
   <harmonic>                             3.9553+-0.0259    ?     3.9773+-0.0249       ?

                                            TipOfTree               ParallelGC                                   
V8:
   crypto                                74.1679+-0.3164         74.0380+-0.3816       
   deltablue                            179.7767+-1.9744        179.3566+-1.2107       
   earley-boyer                          91.6448+-0.5219         90.9476+-0.4252       
   raytrace                              62.5295+-0.4596    !    64.3819+-0.9545       ! definitely 1.0296x slower
   regexp                               105.5681+-0.4315        105.4897+-0.4094       
   richards                             126.3819+-0.6091    ?   127.1708+-0.3652       ?
   splay                                 93.6141+-0.7341    ^    71.9968+-0.5395       ^ definitely 1.3003x faster

   <arithmetic>                         104.8119+-0.2897    ^   101.9116+-0.3152       ^ definitely 1.0285x faster
   <geometric> *                         99.3299+-0.2377    ^    95.9869+-0.3252       ^ definitely 1.0348x faster
   <harmonic>                            94.5656+-0.2492    ^    91.0851+-0.3703       ^ definitely 1.0382x faster

                                            TipOfTree               ParallelGC                                   
Kraken:
   ai-astar                             496.4468+-1.2667    ?   499.0402+-3.6723       ?
   audio-beat-detection                 192.5907+-1.4966        191.6971+-1.2168       
   audio-dft                            266.8459+-3.4843    ?   267.9069+-3.7898       ?
   audio-fft                            125.3709+-0.6697    ?   125.7723+-1.2540       ?
   audio-oscillator                     252.4701+-1.2692        251.8329+-1.2081       
   imaging-darkroom                     404.3208+-1.1456    ?   405.2122+-1.1299       ?
   imaging-desaturate                   226.4488+-0.4880        225.4735+-1.0376       
   imaging-gaussian-blur                558.3593+-1.6383        558.0886+-2.0891       
   json-parse-financial                  57.1418+-0.4478    ?    58.0770+-0.6443       ? might be 1.0164x slower
   json-stringify-tinderbox              68.5476+-0.3060         68.2372+-0.3896       
   stanford-crypto-aes                  134.3287+-1.8809        131.6633+-1.4008         might be 1.0202x faster
   stanford-crypto-ccm                  100.6053+-0.8729        100.2639+-0.5752       
   stanford-crypto-pbkdf2               194.3023+-1.7189        192.6526+-1.6629       
   stanford-crypto-sha256-iterative      71.1339+-0.3512    ?    71.1519+-0.6564       ?

   <arithmetic> *                       224.9224+-0.3267        224.7907+-0.6364       
   <geometric>                          177.2358+-0.3153        177.0139+-0.4504       
   <harmonic>                           139.6362+-0.3532        139.6204+-0.3786       

                                            TipOfTree               ParallelGC                                   
All benchmarks:
   <arithmetic>                          85.9911+-0.1177    ^    85.5317+-0.2086       ^ definitely 1.0054x faster
   <geometric>                           22.4348+-0.0689         22.3655+-0.0666       
   <harmonic>                             6.9654+-0.0445    ?     7.0000+-0.0428       ?

                                            TipOfTree               ParallelGC                                   
Geomean of preferred means:
   <scaled-result>                       51.5027+-0.1124    ^    50.9673+-0.1145       ^ definitely 1.0105x faster

-- 
Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.



More information about the webkit-unassigned mailing list