Quick Note : JXcore is a fork on the open source Node.js project (read more)
In order to get more performance from the system, we recently implemented a multithreading feature and quite happy with it’s performance. Especially on the second release, we improved its performance (up to 30%) since we updated the way it was handling the http calls. If you didn’t test it yet, you can download it from here.
Note: I kept the loops as big as to see the differences in milliseconds level.
Number Test Result (source code here)
V8 JX —– > total 122,…. ms
LLVM JX —- > total 84,…. ms
String Test Result (source code here)
V8 JX —– > total 573,…. ms
LLVM JX —– > total 438,…. ms
Better performance. Although the difference is not that big, considering the list of additional advantages with LLVM, we can significantly benefit from JX on LLVM. Although the dynamic type support was quite a big deal to implement, all the remaining parts will be much easier.
Advantages of JX with LLVM:
- Develop totally native applications for both desktop and mobile. Develop for IOS, Android, and other platforms natively!
(not doable with V8. Besides IOS appStore doesn’t accept JIT based solutions!)
- Consistent performance. ( GC thread )
(not like the V8 engine pausing the ‘whole application!!’ for GC)
- No HEAP memory restrictions
- Access other LLVM backed languages natively without developing a special addon interface
Disadvantages of JX with LLVM:
- Bigger package size
(Right now the JX executable is under 5mb. After LLVM the development package will be around 80Mb or more)