Releases: zhuzilin/es
Some performance optimization
release | total time/s | |
---|---|---|
0.1.0 | 13.8 | 8.6x |
0.1.1 | 12.7 | 7.9x |
quickjs | 1.6 | 1x |
Some performance optimizations
Mainly did some C++ optimizations to reduce copy.
The time required for typescript-test is finally under 10x of quickjs 🎉🎉🎉:
release | total time/s | |
---|---|---|
0.0.8 | 18.0 | 11x |
0.1.0 | 13.8 | 8.6x |
quickjs | 1.6 | 1x |
Some more performance optimizations
The performance improvement of typescript-test:
release | total time/s | |
---|---|---|
0.0.7 | 19.9 | 13x |
0.0.8 | 18.0 | 11x |
quickjs | 1.6 | 1x |
Some performance and memory optimizations
Successfully reduce the heap size from 4GB to 1GB. The performance improvement of typescript-test:
release | total time/s | |
---|---|---|
0.0.6 | 30.5 | 19x |
0.0.7 | 19.9 | 13x |
quickjs | 1.6 | 1x |
Some performance optimizations
release | total time/s | |
---|---|---|
0.0.5 | 39.0 | 24x |
0.0.6 | 30.5 | 19x |
quickjs | 1.6 | 1x |
Note: I changed a laptop, so we could not compare the time for the typescript test (gist is here) between each release note.
Pass most of test262 and some optimization
This release fixed many bug to pass most tests in ch06-ch14 of test262 (branch es5-test) and also did some optimization. The current performance of the typescript test is:
release | total time/s | gc time/s |
---|---|---|
0.0.4 | 146.3 | 20.0 |
0.0.5 | 86.3 | 11.1 |
Add Backup Mark and Sweep GC
Adds a mark and sweep garbage collection to prepare for the generational gc. Also fix the memory leak. Currently, for the typescript compiler benchmark, the speed of two gc are (heap size is 4GB):
gc type | total time/s | gc time/s |
---|---|---|
copying | 146.3 | 20.0 |
mark & sweep | 158.3 | 18.5 |
Copying Garbage Collection
This release adds a very raw copying garbage collection. I learned a lot from the handle mechanism in V8. Also due to moving gc, es went through a major refactor, e.g. many methods become global functions to prevent the this
pointer changes.
The performance of the raw gc is evaluated on a small benchmark (a subset of the typescript benchmark):
version | 0.0.3 | 0.0.2 |
---|---|---|
memory/GB | 2.3 | 7.4 |
time/s | 74.4 | 42.0 |
Initial 🎉
The current es could pass the TypeScript test in Octance, where we need to run the a TypeScript transpiler to transpile the origin transpiler written in TypeScript into ES5 code.
TypeScript transpiler in ES5
TypeScript transpiler in TypeScript -----------------------------------> TypeScript transpiler in ES5