Optimized quickjs mantained by OpenWebF team.
In addition to the relevant features and optimizations in the TODO file, the more important optimizations are:
- Column number
- Basic Debugger API
- Poly IC
- Self Poly IC
- Prototype Poly IC
- Replace malloc To mimalloc
- Improving The Performance Of GC
- Optimizing Opcode Bytecode
In our plan, we first complete the above optimizations and then gradually add the remaining parts.
- Clone this repo and its submodules by doing
git clone --recursive <THIS_REPO_URL>
mkdir build
cd build
cmake ..
make -j4
you can find libquickjs.a
in lib folder and qjs
/ qjsc
/ run-test262
in the ./bin
folder (from the repo root).
> bash scripts/test.sh
It will output result like:
Result: 443/75250 errors, 1392 excluded, 7972 skipped, 443 new
- AMD EPYC 7763 64-Core Processor(L1d cache: 32 KiB)
- Linux codespaces-8a2c03 6.2.0-1018-azure
- GCC (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0
openwebf/quickjs (0c1fa5a) | bellard/quickjs (3f81070) | Improvement(%) | |
---|---|---|---|
Richards | 780 | 644 | +21.12 |
DeltaBlue | 745 | 673 | +10.70 |
Crypto | 645 | 759 | -15.02 |
RayTrace | 1130 | 858 | +31.70 |
EarleyBoyer | 1694 | 1333 | +27.09 |
RegExp | 248 | 204 | +21.57 |
Splay | 1976 | 1711 | +15.49 |
SplayLatency | 7109 | 5574 | +27.54 |
NavierStokes | 1322 | 1418 | -6.77 |
PdfJS | 2989 | 2406 | +24.23 |
Mandreel | 572 | 612 | -6.54 |
MandreelLatency | 4343 | 4369 | -0.60 |
Gameboy | 5191 | 4624 | +12.26 |
CodeLoad | 13113 | 12279 | +6.80 |
Box2D | 2787 | 2424 | +14.97 |
Typescript | 8825 | 8390 | +5.18 |
Score (version 9) | 1942 | 1750 | +10.97 |