I recreated some MathJax Timing Data on my computer, and also ran the same tests in jqMath. For each test, I emptied the brower’s cache, then ran the test, and then revisited (not reloaded) the page to run the test again, presumably getting items from the browser’s cache on the second run. I used an iMac running Mac OS 10.5.8, with a 2.66 GHz Intel Core 2 Duo CPU, and 4 GB of 1067 MHz DDR3 RAM. For Internet Explorer, I used Parallels Desktop 4 virtualization software, Windows Vista Business SP2 32-bit, and 1 GB of RAM. I rebooted each machine before starting. The browsers were Chrome 10.0.648.204 and Internet Explorer 8.0.6001.19019 (without using a MathPlayer plugin). All times are in milliseconds. For more information on these tests, and the columns in the MathJax table below, see the MathJax Timing Data page.
Chrome 10 | Internet Explorer 8 | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
Equations | Total | Process | Reprocess | Revisit Total | Process | Reprocess | Total | Process | Reprocess | Revisit Total | Process | Reprocess |
10 | 2857 | 1934 | 159 | 849 | 260 | 160 | 6719 | 4672 | 766 | 2241 | 1382 | 796 |
30 | 4245 | 2736 | 689 | 1955 | 809 | 693 | 15994 | 12416 | 2672 | 7020 | 4267 | 2688 |
100 | 16588 | 8776 | 7036 | 14735 | 7278 | 7021 | 74066 | 52442 | 18609 | 67516 | 49015 | 18407 |
Chrome 10 | Internet Explorer 8 | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Equations | Load | Convert | L+C | /MathJax | Revisit Load | Convert | L+C | /MathJax | Load | Convert | L+C | /MathJax | Revisit Load | Convert | L+C | /MathJax |
10 | 598 | 30 | 628 | 0.23 | 73 | 24 | 97 | 0.14 | 776 | 172 | 948 | 0.16 | 62 | 203 | 265 | 0.18 |
30 | 383 | 71 | 454 | 0.13 | 74 | 77 | 151 | 0.12 | 735 | 531 | 1266 | 0.10 | 78 | 585 | 663 | 0.15 |
100 | 464 | 227 | 691 | 0.07 | 74 | 212 | 286 | 0.04 | 593 | 1625 | 2218 | 0.04 | 94 | 1837 | 1931 | 0.04 |
The /MathJax columns give $(\Load + \Convert)_\jqMath ∕ (\Total - \Reprocess)_\MathJax$, the approximate ratio of the jqMath and MathJax required times. As you can see, jqMath was roughly 10 times faster than MathJax (but see the updated numbers below). This is because MathJax actually measures and formats all the mathematical expressions and subexpressions itself, whereas jqMath just converts them to simple HTML and CSS, which is then formatted by the browser’s native code.
3/27/13 update: I re-ran the tests in Chrome 26 on the same machine as before, but now using Mac OS 10.6.8, MathJax 2.1, and jqMath 0.4.0.
Chrome 26 | ||||||
---|---|---|---|---|---|---|
Equations | Total | Process | Reprocess | Revisit Total | Process | Reprocess |
10 | 1169 | 699 | 143 | 478 | 223 | 156 |
30 | 1329 | 780 | 360 | 920 | 483 | 384 |
100 | 3831 | 2286 | 1348 | 2977 | 1519 | 1362 |
Chrome 26 | ||||||||
---|---|---|---|---|---|---|---|---|
Equations | Load | Convert | L+C | /MathJax | Revisit Load | Convert | L+C | /MathJax |
10 | 465 | 39 | 504 | 0.49 | 34 | 36 | 70 | 0.22 |
30 | 359 | 74 | 433 | 0.45 | 16 | 65 | 81 | 0.15 |
100 | 499 | 183 | 682 | 0.27 | 24 | 193 | 217 | 0.13 |
MathJax has been sped up significantly, so jqMath is now roughly 2 to 8 times faster than MathJax, averaging perhaps 5 times faster for repeated use. Of course, these times should be even faster in a browser with MathML implemented natively.