Files
GDevelop/GDevelop.js/__tests__/SerializerBenchmark.js

89 lines
2.7 KiB
JavaScript

const initializeGDevelopJs = require('../../Binaries/embuild/GDevelop.js/libGD.js');
const { makeBenchmarkSuite } = require('../TestUtils/BenchmarkSuite.js');
describe.skip('gd.Serializer benchmarks', function () {
let gd = null;
var partialJson = `
{ "a1": { "name": "", "referenceTo": "/a/a1" } },
{ "b1": "world" },
{ "c1": 3 },
{
"0": { "name": "layout0", "referenceTo": "/layouts/layout" },
"1": { "name": "layout1", "referenceTo": "/layouts/layout" },
"2": { "name": "layout2", "referenceTo": "/layouts/layout" },
"3": { "name": "layout3", "referenceTo": "/layouts/layout" },
"4": { "name": "layout4", "referenceTo": "/layouts/layout" }
}
`;
const json = '[' + new Array(1000).fill(partialJson).join(',') + ']';
beforeAll(async () => {
gd = await initializeGDevelopJs();
});
it('Benchmark JSON string -> SerializerElement', function () {
const benchmarkSuite = makeBenchmarkSuite({
benchmarksCount: 3,
iterationsCount: 4,
})
.add('fromJSON', () => {
gd.Serializer.fromJSON(json);
})
.add('JSON.parse + fromJSObject', () => {
gd.Serializer.fromJSObject(JSON.parse(json));
});
console.log(benchmarkSuite.run());
});
it('Benchmark JavaScript Object -> SerializerElement', function () {
const jsObject = JSON.parse(json);
const benchmarkSuite = makeBenchmarkSuite({
benchmarksCount: 3,
iterationsCount: 4,
})
.add('JSON.stringify + fromJSON', () => {
gd.Serializer.fromJSON(JSON.stringify(jsObject));
})
.add('fromJSObject', () => {
gd.Serializer.fromJSObject(jsObject);
});
console.log(benchmarkSuite.run());
});
it('Benchmark SerializerElement -> JSON string', function () {
const element = gd.Serializer.fromJSON(json);
const benchmarkSuite = makeBenchmarkSuite({
benchmarksCount: 3,
iterationsCount: 4,
})
.add('toJSON', () => {
var outputJson = gd.Serializer.toJSON(element);
})
.add('toJSObject + JSON.stringify', () => {
var outputJson = JSON.stringify(gd.Serializer.toJSObject(element));
});
console.log(benchmarkSuite.run());
});
it('Benchmark SerializerElement -> JavaScript Object', function () {
const element = gd.Serializer.fromJSON(json);
const benchmarkSuite = makeBenchmarkSuite({
benchmarksCount: 3,
iterationsCount: 4,
})
.add('JSON.parse + toJSON', () => {
JSON.parse(gd.Serializer.toJSON(element));
})
.add('toJSObject', () => {
gd.Serializer.toJSObject(element);
});
console.log(benchmarkSuite.run());
});
});