Open
Description
Hey!
After moving our project to the latest version of GraalVM its performance degraded drastically (up to 2 times). The internal logic of the project is quite complex, but I've prepared a synthetic test showing the performance difference between GraalVM 22.3.3 and GraalVM for JDK21. The test simply makes a bunch of calls to the jsonParseStringify()
function defined as follows:
const OBJECT_SIZE = 500;
const obj = {};
for (let i = 0; i < OBJECT_SIZE; i++) {
obj["double_key" + i] = Math.random();
obj["str_key" + i] = '#'.repeat(50);
};
function jsonParseStringify() {
return JSON.parse(JSON.stringify(obj));
};
module.exports = {
jsonParseStringify
};
It gives the following numbers in case of GraalVM 22.3.3
warming up
....................................................................................................
Iterations: 100000
Duration: 125.514641
Score: 796.719788 ops/second
testing
....................................................................................................
Iterations: 10000
Duration: 12.805132
Score: 780.936890 ops/second
and the following ones in case of GraalVM JDK21:
warming up
....................................................................................................
Iterations: 100000
Duration: 157.155243
Score: 636.313477 ops/second
testing
....................................................................................................
Iterations: 10000
Duration: 15.578632
Score: 641.904846 ops/second
The complete project may be found here https://github.com/efimbakulin/graalvm-jdk21-performance-test
Could you please give it a look? Probably there are some options which should be enabled to improve the things?
Metadata
Metadata
Assignees
Labels
No labels