{"id":247,"date":"2009-03-20T23:27:39","date_gmt":"2009-03-20T22:27:39","guid":{"rendered":"http:\/\/glandium.org\/blog\/?p=247"},"modified":"2010-01-27T08:52:25","modified_gmt":"2010-01-27T07:52:25","slug":"webkit-113-in-experimental","status":"publish","type":"post","link":"https:\/\/glandium.org\/blog\/?p=247","title":{"rendered":"WebKit 1.1.3 in experimental"},"content":{"rendered":"<p>You may have noticed, or not, but WebKit 1.1.3, which has been released a few days ago, is available in experimental. The great news is that we now have a real maintenance team, because I now have a co-maintainer, who actually did most of the work getting the 1.1.x releases in shape for experimental.<\/p>\n<p>Now, some JavaScript performance figures, as I have been doing for most WebKit releases I uploaded to the archive, with a recap of previous episodes:<\/p>\n<ul>\n<li>svn 27674: <a href=\"http:\/\/webkit.org\/perf\/sunspider-0.9\/sunspider-results.html?%7B%223d-cube%22:%5B122,124,124,127,123%5D,%223d-morph%22:%5B128,128,130,129,131%5D,%223d-raytrace%22:%5B156,155,156,160,159%5D,%22access-binary-trees%22:%5B105,99,99,100,105%5D,%22access-fannkuch%22:%5B261,269,270,263,265%5D,%22access-nbody%22:%5B131,131,133,138,125%5D,%22access-nsieve%22:%5B56,55,54,57,54%5D,%22bitops-3bit-bits-in-byte%22:%5B97,95,97,96,103%5D,%22bitops-bits-in-byte%22:%5B117,114,118,117,114%5D,%22bitops-bitwise-and%22:%5B234,229,227,243,230%5D,%22bitops-nsieve-bits%22:%5B101,93,94,94,95%5D,%22controlflow-recursive%22:%5B138,138,136,138,138%5D,%22crypto-aes%22:%5B84,84,85,85,85%5D,%22crypto-md5%22:%5B113,114,117,121,114%5D,%22crypto-sha1%22:%5B116,113,114,112,113%5D,%22date-format-tofte%22:%5B201,203,203,202,212%5D,%22date-format-xparb%22:%5B430,429,430,429,441%5D,%22math-cordic%22:%5B163,157,162,166,165%5D,%22math-partial-sums%22:%5B140,142,143,141,141%5D,%22math-spectral-norm%22:%5B99,99,99,101,100%5D,%22regexp-dna%22:%5B195,199,197,200,199%5D,%22string-base64%22:%5B99,100,101,100,99%5D,%22string-fasta%22:%5B180,179,181,184,184%5D,%22string-tagcloud%22:%5B151,152,152,151,149%5D,%22string-unpack-code%22:%5B168,169,172,169,169%5D,%22string-validate-input%22:%5B134,135,134,137,135%5D%7D\">3932.0ms<\/a><\/li>\n<li>svn 31842: <a href=\"http:\/\/www2.webkit.org\/perf\/sunspider-0.9\/sunspider-results.html?%7B%223d-cube%22:%5B95,97,99,97,97%5D,%223d-morph%22:%5B88,89,87,88,85%5D,%223d-raytrace%22:%5B104,104,105,108,103%5D,%22access-binary-trees%22:%5B41,42,44,41,42%5D,%22access-fannkuch%22:%5B198,200,198,200,201%5D,%22access-nbody%22:%5B99,98,98,97,97%5D,%22access-nsieve%22:%5B51,49,49,50,56%5D,%22bitops-3bit-bits-in-byte%22:%5B46,47,48,45,46%5D,%22bitops-bits-in-byte%22:%5B77,71,72,72,77%5D,%22bitops-bitwise-and%22:%5B108,109,110,108,119%5D,%22bitops-nsieve-bits%22:%5B82,81,82,83,91%5D,%22controlflow-recursive%22:%5B46,45,44,44,47%5D,%22crypto-aes%22:%5B68,68,68,69,78%5D,%22crypto-md5%22:%5B48,50,48,48,54%5D,%22crypto-sha1%22:%5B47,48,46,48,51%5D,%22date-format-tofte%22:%5B154,154,154,155,157%5D,%22date-format-xparb%22:%5B231,228,227,228,235%5D,%22math-cordic%22:%5B101,100,101,100,106%5D,%22math-partial-sums%22:%5B130,127,131,130,129%5D,%22math-spectral-norm%22:%5B50,50,50,50,50%5D,%22regexp-dna%22:%5B232,231,231,231,235%5D,%22string-base64%22:%5B74,71,73,72,73%5D,%22string-fasta%22:%5B116,121,119,120,125%5D,%22string-tagcloud%22:%5B115,114,114,114,140%5D,%22string-unpack-code%22:%5B105,108,108,107,119%5D,%22string-validate-input%22:%5B85,85,86,83,90%5D%7D\">2612.2ms<\/a><\/li>\n<li>release 1.0.1: <a href=\"http:\/\/www2.webkit.org\/perf\/sunspider-0.9\/sunspider-results.html?%7B%223d-cube%22:%5B65,66,65,66,66%5D,%223d-morph%22:%5B74,76,74,74,83%5D,%223d-raytrace%22:%5B73,84,76,77,75%5D,%22access-binary-trees%22:%5B27,28,27,27,27%5D,%22access-fannkuch%22:%5B102,98,96,98,96%5D,%22access-nbody%22:%5B83,83,84,83,83%5D,%22access-nsieve%22:%5B30,27,28,29,27%5D,%22bitops-3bit-bits-in-byte%22:%5B21,20,20,19,21%5D,%22bitops-bits-in-byte%22:%5B26,27,26,26,26%5D,%22bitops-bitwise-and%22:%5B44,48,43,48,46%5D,%22bitops-nsieve-bits%22:%5B55,53,58,57,57%5D,%22controlflow-recursive%22:%5B19,19,19,19,19%5D,%22crypto-aes%22:%5B43,44,43,44,44%5D,%22crypto-md5%22:%5B32,33,33,32,33%5D,%22crypto-sha1%22:%5B34,33,34,34,34%5D,%22date-format-tofte%22:%5B101,103,102,102,102%5D,%22date-format-xparb%22:%5B69,69,70,70,70%5D,%22math-cordic%22:%5B48,48,47,48,49%5D,%22math-partial-sums%22:%5B81,88,86,81,87%5D,%22math-spectral-norm%22:%5B30,28,28,28,28%5D,%22regexp-dna%22:%5B206,205,205,205,210%5D,%22string-base64%22:%5B54,55,55,54,54%5D,%22string-fasta%22:%5B62,61,62,61,61%5D,%22string-tagcloud%22:%5B103,106,105,105,105%5D,%22string-unpack-code%22:%5B101,103,104,103,103%5D,%22string-validate-input%22:%5B62,65,64,62,65%5D%7D\">1658.4ms<\/a>\n<\/li>\n<li>release 1.1.3: <a href=\"http:\/\/www2.webkit.org\/perf\/sunspider-0.9\/sunspider-results.html?%7B%223d-cube%22:%5B60,64,64,64,65%5D,%223d-morph%22:%5B75,80,86,77,83%5D,%223d-raytrace%22:%5B64,65,69,66,67%5D,%22access-binary-trees%22:%5B17,17,19,17,17%5D,%22access-fannkuch%22:%5B56,56,57,57,57%5D,%22access-nbody%22:%5B76,87,83,80,83%5D,%22access-nsieve%22:%5B18,18,19,19,18%5D,%22bitops-3bit-bits-in-byte%22:%5B16,18,18,18,18%5D,%22bitops-bits-in-byte%22:%5B28,24,26,24,25%5D,%22bitops-bitwise-and%22:%5B24,23,24,23,23%5D,%22bitops-nsieve-bits%22:%5B37,37,38,37,37%5D,%22controlflow-recursive%22:%5B13,14,14,14,14%5D,%22crypto-aes%22:%5B27,31,27,28,27%5D,%22crypto-md5%22:%5B29,28,28,30,33%5D,%22crypto-sha1%22:%5B29,32,28,28,28%5D,%22date-format-tofte%22:%5B41,41,42,43,41%5D,%22date-format-xparb%22:%5B61,62,61,62,68%5D,%22math-cordic%22:%5B49,50,50,50,54%5D,%22math-partial-sums%22:%5B105,75,75,75,75%5D,%22math-spectral-norm%22:%5B26,27,27,27,30%5D,%22regexp-dna%22:%5B209,215,205,207,209%5D,%22string-base64%22:%5B25,25,25,25,24%5D,%22string-fasta%22:%5B41,44,42,44,42%5D,%22string-tagcloud%22:%5B88,88,87,89,89%5D,%22string-unpack-code%22:%5B66,67,66,66,67%5D,%22string-validate-input%22:%5B51,51,51,51,50%5D%7D\">1333.2ms<\/a><\/li>\n<\/ul>\n<p>All there tests have obviously been run on the same machine, under the same conditions. The machine in question is my x86-64 laptop, which means all these test are with a x86-64 binary.<\/p>\n<p>This also means the last release, 1.1.3, doesn't take advantage of the Just In Time JavaScript compiler, which is only available on x86 binaries.<\/p>\n<p>With the x86 binaries under a x86 personality chroot, I get under one second:<\/p>\n<ul>\n<li>release 1.1.3, with JIT, x86: <a href=\"http:\/\/www2.webkit.org\/perf\/sunspider-0.9\/sunspider-results.html?%7B%223d-cube%22:%5B73,71,71,72,75%5D,%223d-morph%22:%5B64,64,63,64,65%5D,%223d-raytrace%22:%5B47,48,47,47,47%5D,%22access-binary-trees%22:%5B11,11,10,11,12%5D,%22access-fannkuch%22:%5B15,16,17,17,17%5D,%22access-nbody%22:%5B51,50,51,51,51%5D,%22access-nsieve%22:%5B7,8,8,8,8%5D,%22bitops-3bit-bits-in-byte%22:%5B4,4,4,4,4%5D,%22bitops-bits-in-byte%22:%5B7,8,7,7,8%5D,%22bitops-bitwise-and%22:%5B9,9,8,9,12%5D,%22bitops-nsieve-bits%22:%5B21,21,20,21,21%5D,%22controlflow-recursive%22:%5B6,5,5,5,6%5D,%22crypto-aes%22:%5B16,15,15,15,15%5D,%22crypto-md5%22:%5B22,22,22,22,22%5D,%22crypto-sha1%22:%5B22,20,20,21,21%5D,%22date-format-tofte%22:%5B41,40,39,45,40%5D,%22date-format-xparb%22:%5B70,69,68,77,69%5D,%22math-cordic%22:%5B54,56,53,53,54%5D,%22math-partial-sums%22:%5B78,76,74,76,75%5D,%22math-spectral-norm%22:%5B20,20,20,20,22%5D,%22regexp-dna%22:%5B29,29,29,28,29%5D,%22string-base64%22:%5B32,31,30,30,32%5D,%22string-fasta%22:%5B47,48,48,48,49%5D,%22string-tagcloud%22:%5B106,117,106,107,106%5D,%22string-unpack-code%22:%5B75,91,78,76,75%5D,%22string-validate-input%22:%5B53,53,55,54,54%5D%7D\">985.4ms<\/a><\/li>\n<\/ul>\n<p>But, in the last few days, I've been working on getting JIT first to build and then to work on x86-64 linux, and with the help of folks on the webkit-dev list, that just happened. And the result is just... wow.<\/p>\n<ul>\n<li>release 1.1.3, with JIT, x86-64: <a href=\"http:\/\/www2.webkit.org\/perf\/sunspider-0.9\/sunspider-results.html?%7B%223d-cube%22:%5B19,19,19,25,19%5D,%223d-morph%22:%5B36,37,36,37,35%5D,%223d-raytrace%22:%5B22,22,21,22,22%5D,%22access-binary-trees%22:%5B10,11,11,13,10%5D,%22access-fannkuch%22:%5B19,16,16,17,16%5D,%22access-nbody%22:%5B13,13,12,13,13%5D,%22access-nsieve%22:%5B8,9,9,9,8%5D,%22bitops-3bit-bits-in-byte%22:%5B4,4,4,3,4%5D,%22bitops-bits-in-byte%22:%5B8,8,8,9,8%5D,%22bitops-bitwise-and%22:%5B11,11,11,11,10%5D,%22bitops-nsieve-bits%22:%5B7,8,7,7,8%5D,%22controlflow-recursive%22:%5B5,5,4,5,5%5D,%22crypto-aes%22:%5B14,14,14,14,14%5D,%22crypto-md5%22:%5B8,9,9,9,8%5D,%22crypto-sha1%22:%5B7,6,6,7,6%5D,%22date-format-tofte%22:%5B34,35,34,38,34%5D,%22date-format-xparb%22:%5B58,72,58,59,73%5D,%22math-cordic%22:%5B14,14,15,15,14%5D,%22math-partial-sums%22:%5B39,39,38,39,39%5D,%22math-spectral-norm%22:%5B8,8,9,9,9%5D,%22regexp-dna%22:%5B27,26,26,26,27%5D,%22string-base64%22:%5B20,20,20,19,21%5D,%22string-fasta%22:%5B34,37,36,36,38%5D,%22string-tagcloud%22:%5B90,90,89,89,88%5D,%22string-unpack-code%22:%5B67,55,56,55,55%5D,%22string-validate-input%22:%5B43,41,41,41,41%5D%7D\">623.0ms<\/a><\/li>\n<\/ul>\n<p>(Note that a few tests are actually slower than on x86)<\/p>\n<p>That's so many times faster than what we had a year ago that it's almost unbelievable.<\/p>\n<p>Expect the next upstream release, planned for some time in the near future, to have my patches applied. In the meanwhile, you can get them <a href=\"https:\/\/bugs.webkit.org\/attachment.cgi?id=28794&action=prettypatch\">here<\/a> and <a href=\"https:\/\/bugs.webkit.org\/attachment.cgi?id=28800&action=prettypatch\">here<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>You may have noticed, or not, but WebKit 1.1.3, which has been released a few days ago, is available in experimental. The great news is that we now have a real maintenance team, because I now have a co-maintainer, who actually did most of the work getting the 1.1.x releases in shape for experimental. Now, [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[17],"tags":[23],"class_list":["post-247","post","type-post","status-publish","format-standard","hentry","category-webkit","tag-en"],"_links":{"self":[{"href":"https:\/\/glandium.org\/blog\/index.php?rest_route=\/wp\/v2\/posts\/247","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/glandium.org\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/glandium.org\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/glandium.org\/blog\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/glandium.org\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=247"}],"version-history":[{"count":11,"href":"https:\/\/glandium.org\/blog\/index.php?rest_route=\/wp\/v2\/posts\/247\/revisions"}],"predecessor-version":[{"id":652,"href":"https:\/\/glandium.org\/blog\/index.php?rest_route=\/wp\/v2\/posts\/247\/revisions\/652"}],"wp:attachment":[{"href":"https:\/\/glandium.org\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=247"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/glandium.org\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=247"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/glandium.org\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=247"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}