Software : : Public Beta of JIT Javascript Compiler for Odyssey v1.25
Posted By: ASiegel. on 2018/7/18 16:20:53
Public Beta of JIT Javascript Compiler for Odyssey v1.25Mark Olsen has shared a special test version of the recently launched Odyssey v1.25 that introduces a PowerPC native port of Webkit's Just-In-Time Javascript compiler, which can greatly accelerate suitable web applications.

Please note that JIT compilation does increase memory consumption. Also, please be aware that this release only includes the first stage of the JIT compiler which limits the speed increase.

Further performance improvements are to be expected in the future.

Bounty project: morphos.pl
 
  • Andreas_Wolf
    Joined: 2003/5/22
    Posts: 9829
    From: Germany
    > PowerPC native port of Webkit's Just-In-Time Javascript compiler

    I think the term 'reimplementation' would describe better than 'port' what was and will be done :-)
  • »2018/7/18 22:54
    Profile
  • Priest of the Order of the Butterfly
    Priest of the Order of the Butterfly
    NewSense
    Joined: 2012/11/10
    Posts: 664
    From: Manchester, UK...
    It works OK for me, I've had no issues using it. In any case IMHO v1.25 of OWB (v3.11 of MorphOS release) is a great step forward from v1.24 (MorphOS v3.10).

    Anyone likely to do, or know the benchmark between the v1.25 MorphOS v3.11 release of OWB, and of this JIT enabled ßeta released version for any improvement in speed or RAM performance, i.e. more efficient use of memory, &/or of it not causing fewer memory leaks that lead to low memory conditions.

    From my rudimentary testing of it, I'd say it seems better using memory, as I don't seem to be having the same lack of memory after the same amount of use/number of websites visited.
    Mac Mini 1.5GHz, Model 10.2, 64MB VRam, 250GB HDD, 1GB RAM, Airport, Bluetooth, Wireless Keyboard & Mouse, DVD-RW-DL+CD-RW, Iomega MiniMax, Belkin 6 port 3 x Firewire/3 x USB2, MorphOS 3.9, Mac OS X 10.4 & 10.5 & A1138 Powerbook MOS v3.9, Model 5,8 (Also
  • »2018/7/19 3:23
    Profile
  • jPV
  • Paladin of the Pegasos
    Paladin of the Pegasos
    jPV
    Joined: 2003/2/24
    Posts: 1400
    From: po-RNO
    BTW. I did try to use the latest OWB 1.24 from Fab's site (not these newer MorphOS included ones) and oh boy that consumed memory a lot faster on big gossip pages :) Couldn't even browse one page through before all memory was used (1GB machine), while I can do that and go to other pages with these newer ones. So memory usage has clearly been improved even if you don't notice it that easily when going to the better direction :)
  • »2018/7/19 6:21
    Profile Visit Website
  • Priest of the Order of the Butterfly
    Priest of the Order of the Butterfly
    koszer
    Joined: 2004/2/8
    Posts: 812
    From: Poland
    I don't have any personal feelings of "faster" or "slower" than the non-JIT version, but so far the benchmarks results suggest that the JIT-enabled version it's generally slower then its predcessor:

    Tests on G5 2,7 GHz:

    Sunspider Benchmark (fist column (FROM) is for the old version, while the second one (TO) is for JIT):

    Code:
    TEST                   COMPARISON               FROM                 TO             DETAILS

    ===============================================================================

    ** TOTAL **: *1.140x as slow* 2642.2ms +/- 0.3% 3011.8ms +/- 0.3% significant

    ===============================================================================

    3d: *1.41x as slow* 266.9ms +/- 1.6% 377.1ms +/- 1.3% significant
    cube: *1.32x as slow* 71.6ms +/- 3.7% 94.5ms +/- 3.1% significant
    morph: 1.111x as fast 101.9ms +/- 2.6% 91.7ms +/- 2.8% significant
    raytrace: *2.04x as slow* 93.4ms +/- 3.1% 190.9ms +/- 1.5% significant

    access: *1.74x as slow* 320.4ms +/- 1.2% 556.8ms +/- 1.1% significant
    binary-trees: *1.46x as slow* 29.0ms +/- 1.2% 42.2ms +/- 7.1% significant
    fannkuch: *1.66x as slow* 159.1ms +/- 2.5% 263.4ms +/- 1.7% significant
    nbody: *2.40x as slow* 97.3ms +/- 0.6% 234.0ms +/- 1.6% significant
    nsieve: 2.03x as fast 35.0ms +/- 5.9% 17.2ms +/- 2.6% significant

    bitops: 1.37x as fast 348.7ms +/- 0.2% 254.5ms +/- 2.6% significant
    3bit-bits-in-byte: 2.48x as fast 51.3ms +/- 1.3% 20.7ms +/- 4.3% significant
    bits-in-byte: 2.31x as fast 70.9ms +/- 0.3% 30.7ms +/- 9.6% significant
    bitwise-and: 2.66x as fast 110.7ms +/- 0.4% 41.6ms +/- 7.1% significant
    nsieve-bits: *1.39x as slow* 115.8ms +/- 0.5% 161.5ms +/- 3.0% significant

    controlflow: 2.07x as fast 25.9ms +/- 2.4% 12.5ms +/- 4.0% significant
    recursive: 2.07x as fast 25.9ms +/- 2.4% 12.5ms +/- 4.0% significant

    crypto: *1.27x as slow* 137.0ms +/- 2.9% 173.8ms +/- 2.5% significant
    aes: *1.67x as slow* 61.6ms +/- 0.6% 103.0ms +/- 3.9% significant
    md5: *1.024x as slow* 37.7ms +/- 1.3% 38.6ms +/- 1.0% significant
    sha1: 1.171x as fast 37.7ms +/- 9.9% 32.2ms +/- 8.7% significant

    date: *1.36x as slow* 163.9ms +/- 1.9% 223.6ms +/- 2.3% significant
    format-tofte: *1.44x as slow* 73.6ms +/- 1.1% 105.9ms +/- 4.0% significant
    format-xparb: *1.30x as slow* 90.3ms +/- 3.7% 117.7ms +/- 2.5% significant

    math: 1.38x as fast 275.1ms +/- 1.3% 198.7ms +/- 2.2% significant
    cordic: 2.12x as fast 122.8ms +/- 2.9% 57.9ms +/- 6.2% significant
    partial-sums: - 88.2ms +/- 0.7% 86.7ms +/- 2.8%
    spectral-norm: 1.185x as fast 64.1ms +/- 1.0% 54.1ms +/- 1.3% significant

    regexp: *1.012x as slow* 566.9ms +/- 1.0% 573.8ms +/- 0.7% significant
    dna: *1.012x as slow* 566.9ms +/- 1.0% 573.8ms +/- 0.7% significant

    string: *1.193x as slow* 537.4ms +/- 0.8% 641.0ms +/- 0.8% significant
    base64: *1.073x as slow* 70.8ms +/- 1.0% 76.0ms +/- 3.8% significant
    fasta: *1.194x as slow* 100.3ms +/- 1.1% 119.8ms +/- 2.4% significant
    tagcloud: *1.23x as slow* 123.9ms +/- 2.5% 152.3ms +/- 1.8% significant
    unpack-code: *1.192x as slow* 182.8ms +/- 2.0% 217.9ms +/- 2.2% significant
    validate-input: *1.26x as slow* 59.6ms +/- 4.1% 75.0ms +/- 2.9% significant


    Kraken benchmark (fist column (FROM) is for JIT, while the second one (TO) is for the old version):

    Code:
    TEST                         COMPARISON            FROM                 TO               DETAILS

    ====================================================================================

    ** TOTAL **: 1.64x as fast 171686.7ms +/- 0.6% 104582.2ms +/- 0.2% significant

    ====================================================================================

    ai: 3.41x as fast 28755.7ms +/- 1.7% 8435.5ms +/- 0.5% significant
    astar: 3.41x as fast 28755.7ms +/- 1.7% 8435.5ms +/- 0.5% significant

    audio: 2.19x as fast 49715.7ms +/- 0.4% 22655.4ms +/- 0.2% significant
    beat-detection: 2.04x as fast 10924.2ms +/- 0.3% 5360.1ms +/- 0.9% significant
    dft: 1.68x as fast 11090.5ms +/- 2.0% 6585.7ms +/- 0.2% significant
    fft: 2.04x as fast 10491.1ms +/- 0.4% 5137.9ms +/- 0.4% significant
    oscillator: 3.09x as fast 17209.9ms +/- 0.3% 5571.7ms +/- 0.4% significant

    imaging: 1.30x as fast 80741.4ms +/- 1.0% 62322.1ms +/- 0.3% significant
    gaussian-blur: 1.32x as fast 60551.4ms +/- 1.1% 45908.9ms +/- 0.4% significant
    darkroom: *1.133x as slow* 5725.7ms +/- 1.1% 6486.0ms +/- 0.6% significant
    desaturate: 1.46x as fast 14464.3ms +/- 2.7% 9927.2ms +/- 0.4% significant

    json: 1.092x as fast 816.0ms +/- 0.7% 747.0ms +/- 0.7% significant
    parse-financial: 1.189x as fast 218.6ms +/- 0.4% 183.8ms +/- 1.6% significant
    stringify-tinderbox: 1.061x as fast 597.4ms +/- 0.9% 563.2ms +/- 0.9% significant

    stanford: 1.119x as fast 11657.9ms +/- 0.5% 10422.2ms +/- 0.6% significant
    crypto-aes: 1.22x as fast 2682.3ms +/- 0.7% 2201.1ms +/- 1.1% significant
    crypto-ccm: 1.21x as fast 1637.8ms +/- 1.2% 1350.1ms +/- 0.8% significant
    crypto-pbkdf2: 1.085x as fast 5576.0ms +/- 0.8% 5137.6ms +/- 1.2% significant
    crypto-sha256-iterative: 1.016x as fast 1761.8ms +/- 0.7% 1733.4ms +/- 0.9% significant
  • »2018/7/19 9:25
    Profile
  • Order of the Butterfly
    Order of the Butterfly
    connor
    Joined: 2007/7/29
    Posts: 499
    From:
    For me it feels the same. I have not seen any difference so far. Which typical websites should be faster or slower? I did not realize any differences in news pages, PayPal (still not possible to make a money transfer and the same timeouts), mail provider pages.
  • »2018/7/19 9:58
    Profile
  • MorphOS Developer
    bigfoot
    Joined: 2003/4/11
    Posts: 304
    From:
    Unfortunately it seems that I managed to accidentally leave out a specific (and important) optimisation from this release. I've uploaded a new OWB-JIT archive to my website which has this optimisation re-enabled :)

    @koszer
    Thanks for pointing this out :) With the new binary, Sunspider still doesn't show a great improvement, but an improvement nonetheless, at least for me. Octane shows a much nicer improvement, but has its own issues as the "pdf.js" test runs out of memory. The tests before then show up to a 3 times improvement for me.

    Please download the new binary and try again, and if you find anything that else that doesn't seem right, please let me know!

    To verify that you have the updated version, the update OWB-JIT.lha archive has an md5sum of1bfd40216a4abf9c13b228a9227dfed4 and the updated OWB-JIT binary has an md5sum of0f3ba9ce5a086748b4a9737be3150cff
    I rarely log in to MorphZone which means that I often miss private messages sent on here. If you wish to contact me, please email me at [username]@asgaard.morphos-team.net, where [username] is my username here on MorphZone.
  • »2018/7/19 10:45
    Profile Visit Website
  • Order of the Butterfly
    Order of the Butterfly
    r-tea
    Joined: 2005/3/27
    Posts: 291
    From: Poland, Zdzies...
    The thing I know for sure is that Mark himself is faster than his OWB-JIT ;-) :-D
    Mac mini G4@1,5GHz silent upgrade + HP Dj 595C + EPSON Perfection 1240U
    Amiga 600
    Commodore C64C + 2 x 1541II + Datasette + SD-Box

    I miss draggable screens... and do you? I know I'm in a minority unfortunately.
  • »2018/7/19 11:11
    Profile Visit Website
  • Priest of the Order of the Butterfly
    Priest of the Order of the Butterfly
    koszer
    Joined: 2004/2/8
    Posts: 812
    From: Poland
    I've tried Octane 2.0 benchmark on a 1 GB RAM equipped iBook G4 1,33 GHz and without JIT it passes the test (with 358 points AFAIR), but with JIT enabled the browser hangs halfway (the memory gauge suddenly goes 100% and bam - it's meditating).

    [ Edited by koszer On 2018/7/19 20:30 ]
  • »2018/7/19 18:01
    Profile
  • MorphOS Developer
    bigfoot
    Joined: 2003/4/11
    Posts: 304
    From:
    Quote:

    For me it feels the same. I have not seen any difference so far. Which typical websites should be faster or slower? I did not realize any differences in news pages, PayPal (still not possible to make a money transfer and the same timeouts), mail provider pages.


    Make sure you update to the second release I made. Also, the JIT will only make some things faster. It will not change anything for things that didn't work at all before.
    I rarely log in to MorphZone which means that I often miss private messages sent on here. If you wish to contact me, please email me at [username]@asgaard.morphos-team.net, where [username] is my username here on MorphZone.
  • »2018/7/20 9:27
    Profile Visit Website
  • MorphOS Developer
    bigfoot
    Joined: 2003/4/11
    Posts: 304
    From:
    Quote:

    I've tried Octane 2.0 benchmark on a 1 GB RAM equipped iBook G4 1,33 GHz and without JIT it passes the test (with 358 points AFAIR), but with JIT enabled the browser hangs halfway (the memory gauge suddenly goes 100% and bam - it's meditating).


    Yes, as mentioned the pdf.js test runs out of memroy. I have not yet investigated this issue, so I don't know if it is because of a bug or if the JIT version simply uses more memory, but it's probably a bug. I also found out that one of the later tests fails with JIT as well.

    I've uploaded two variants of the Octane benchmark to my website, first one that disables the tests that fail with the original OWB (zlib test) as well as the two tests that currently fail with JIT (pdf.js, Mandreel) and then also one that also disables the regular expression test, as the regular expression JIT is not yet enabled.

    Octane without failing tests

    Octane without failing tests and regexp
    I rarely log in to MorphZone which means that I often miss private messages sent on here. If you wish to contact me, please email me at [username]@asgaard.morphos-team.net, where [username] is my username here on MorphZone.
  • »2018/7/20 9:54
    Profile Visit Website
  • Just looking around
    amiga23
    Joined: 2014/5/5
    Posts: 12
    From:
    OWB-JIT does not handle timezone information.

    getTimezoneOffset() returns 0 but should return -120
    getUTCHours() returns the same value as getHours()

    In OWB included in MOS 3.11 it works fine.

    https://www.quackit.com/javascript/tutorial/javascript_date_and_time.cfm
  • »2018/7/21 16:44
    Profile