mirror of
https://github.com/Heretek-AI/GDevelop.git
synced 2026-07-21 17:45:25 -04:00
89 lines
2.7 KiB
JavaScript
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());
|
|
});
|
|
});
|