Skip to content
This repository has been archived by the owner on Jul 31, 2022. It is now read-only.

Commit

Permalink
Performance test suite #22
Browse files Browse the repository at this point in the history
  • Loading branch information
xeolabs committed Jun 24, 2021
1 parent 3e74243 commit 1db47fc
Show file tree
Hide file tree
Showing 3 changed files with 137 additions and 95 deletions.
41 changes: 41 additions & 0 deletions perfTests/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
## convert2xkt Performance Tests


24 / 5 / 2021
---
## Notes


* convert2xkt 1.3.0
* xeokit-sdk 1.9.0
* Chrome/92.0.4512.0
* Click thumbnails to view models with xeokit.


## Results


| Screenshot | Source | Convert Secs | Load Secs | FPS | Objects | Triangles | Vertices | Source kB | XKT kB | Compression |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| [![](https://xeokit.github.io/xeokit-xkt-utils/assets/models/xkt/3dxml_widget/screenshot/screenshot.png)](https://xeokit.github.io/xeokit-xkt-utils/demos/demoXKT.html?xktSrc=.././assets/models/xkt/3dxml_widget/model.xkt) | [3dxml_widget](https://xeokit.github.io/xeokit-xkt-utils/demos/loadXKT.html?xktSrc=.././assets/models/xkt/3dxml_widget/model.xkt) | 0.34 | 0.13 | 60 | 306 | 10464 | 13686 | 123.78 | 61.65 | 2.01 |
| [![](https://xeokit.github.io/xeokit-xkt-utils/assets/models/xkt/cityjson_csol/screenshot/screenshot.png)](https://xeokit.github.io/xeokit-xkt-utils/demos/demoXKT.html?xktSrc=.././assets/models/xkt/cityjson_csol/model.xkt) | [cityjson_csol](https://xeokit.github.io/xeokit-xkt-utils/demos/loadXKT.html?xktSrc=.././assets/models/xkt/cityjson_csol/model.xkt) | 0.01 | 0.08 | 60 | 1 | 24 | 12 | 5.26 | 0.66 | 8.00 |
| [![](https://xeokit.github.io/xeokit-xkt-utils/assets/models/xkt/cityjson_msol/screenshot/screenshot.png)](https://xeokit.github.io/xeokit-xkt-utils/demos/demoXKT.html?xktSrc=.././assets/models/xkt/cityjson_msol/model.xkt) | [cityjson_msol](https://xeokit.github.io/xeokit-xkt-utils/demos/loadXKT.html?xktSrc=.././assets/models/xkt/cityjson_msol/model.xkt) | 0.01 | 0.04 | 60 | 1 | 24 | 16 | 5.54 | 0.66 | 8.43 |
| [![](https://xeokit.github.io/xeokit-xkt-utils/assets/models/xkt/cityjson_msurface/screenshot/screenshot.png)](https://xeokit.github.io/xeokit-xkt-utils/demos/demoXKT.html?xktSrc=.././assets/models/xkt/cityjson_msurface/model.xkt) | [cityjson_msurface](https://xeokit.github.io/xeokit-xkt-utils/demos/loadXKT.html?xktSrc=.././assets/models/xkt/cityjson_msurface/model.xkt) | 0.01 | 0.04 | 60 | 1 | 10 | 8 | 2.46 | 0.59 | 4.14 |
| [![](https://xeokit.github.io/xeokit-xkt-utils/assets/models/xkt/cityjson_twocube/screenshot/screenshot.png)](https://xeokit.github.io/xeokit-xkt-utils/demos/demoXKT.html?xktSrc=.././assets/models/xkt/cityjson_twocube/model.xkt) | [cityjson_twocube](https://xeokit.github.io/xeokit-xkt-utils/demos/loadXKT.html?xktSrc=.././assets/models/xkt/cityjson_twocube/model.xkt) | 0.01 | 0.03 | 60 | 1 | 24 | 16 | 4.90 | 0.63 | 7.81 |
| [![](https://xeokit.github.io/xeokit-xkt-utils/assets/models/xkt/cityjson_cube/screenshot/screenshot.png)](https://xeokit.github.io/xeokit-xkt-utils/demos/demoXKT.html?xktSrc=.././assets/models/xkt/cityjson_cube/model.xkt) | [cityjson_cube](https://xeokit.github.io/xeokit-xkt-utils/demos/loadXKT.html?xktSrc=.././assets/models/xkt/cityjson_cube/model.xkt) | 0.00 | 0.03 | 60 | 1 | 12 | 8 | 1.76 | 0.60 | 2.94 |
| [![](https://xeokit.github.io/xeokit-xkt-utils/assets/models/xkt/cityjson_tetra/screenshot/screenshot.png)](https://xeokit.github.io/xeokit-xkt-utils/demos/demoXKT.html?xktSrc=.././assets/models/xkt/cityjson_tetra/model.xkt) | [cityjson_tetra](https://xeokit.github.io/xeokit-xkt-utils/demos/loadXKT.html?xktSrc=.././assets/models/xkt/cityjson_tetra/model.xkt) | 0.00 | 0.04 | 60 | 1 | 4 | 4 | 1.69 | 0.54 | 3.13 |
| [![](https://xeokit.github.io/xeokit-xkt-utils/assets/models/xkt/cityjson_torus/screenshot/screenshot.png)](https://xeokit.github.io/xeokit-xkt-utils/demos/demoXKT.html?xktSrc=.././assets/models/xkt/cityjson_torus/model.xkt) | [cityjson_torus](https://xeokit.github.io/xeokit-xkt-utils/demos/loadXKT.html?xktSrc=.././assets/models/xkt/cityjson_torus/model.xkt) | 0.01 | 0.04 | 60 | 1 | 18 | 14 | 4.35 | 0.65 | 6.75 |
| [![](https://xeokit.github.io/xeokit-xkt-utils/assets/models/xkt/cityjson_denhaag/screenshot/screenshot.png)](https://xeokit.github.io/xeokit-xkt-utils/demos/demoXKT.html?xktSrc=.././assets/models/xkt/cityjson_denhaag/model.xkt) | [cityjson_denhaag](https://xeokit.github.io/xeokit-xkt-utils/demos/loadXKT.html?xktSrc=.././assets/models/xkt/cityjson_denhaag/model.xkt) | 1.08 | 0.48 | 60 | 1991 | 41197 | 71069 | 3153.55 | 399.34 | 7.90 |
| [![](https://xeokit.github.io/xeokit-xkt-utils/assets/models/xkt/cityjson_railway/screenshot/screenshot.png)](https://xeokit.github.io/xeokit-xkt-utils/demos/demoXKT.html?xktSrc=.././assets/models/xkt/cityjson_railway/model.xkt) | [cityjson_railway](https://xeokit.github.io/xeokit-xkt-utils/demos/loadXKT.html?xktSrc=.././assets/models/xkt/cityjson_railway/model.xkt) | 3.14 | 0.54 | 60 | 120 | 113537 | 170281 | 4521.41 | 878.91 | 5.14 |
| [![](https://xeokit.github.io/xeokit-xkt-utils/assets/models/xkt/ifc_conferencecenter/screenshot/screenshot.png)](https://xeokit.github.io/xeokit-xkt-utils/demos/demoXKT.html?xktSrc=.././assets/models/xkt/ifc_conferencecenter/model.xkt) | [ifc_conferencecenter](https://xeokit.github.io/xeokit-xkt-utils/demos/loadXKT.html?xktSrc=.././assets/models/xkt/ifc_conferencecenter/model.xkt) | 49.74 | 1.13 | 26 | 6087 | 511459 | 1268451 | 71700.42 | 2698.16 | 26.57 |
| [![](https://xeokit.github.io/xeokit-xkt-utils/assets/models/xkt/ifc_duplex/screenshot/screenshot.png)](https://xeokit.github.io/xeokit-xkt-utils/demos/demoXKT.html?xktSrc=.././assets/models/xkt/ifc_duplex/model.xkt) | [ifc_duplex](https://xeokit.github.io/xeokit-xkt-utils/demos/loadXKT.html?xktSrc=.././assets/models/xkt/ifc_duplex/model.xkt) | 0.85 | 0.17 | 60 | 208 | 20194 | 49504 | 2366.05 | 88.94 | 26.60 |
| [![](https://xeokit.github.io/xeokit-xkt-utils/assets/models/xkt/ifc_openhouse2x3/screenshot/screenshot.png)](https://xeokit.github.io/xeokit-xkt-utils/demos/demoXKT.html?xktSrc=.././assets/models/xkt/ifc_openhouse2x3/model.xkt) | [ifc_openhouse2x3](https://xeokit.github.io/xeokit-xkt-utils/demos/loadXKT.html?xktSrc=.././assets/models/xkt/ifc_openhouse2x3/model.xkt) | 0.32 | 0.09 | 60 | 40 | 613 | 1801 | 112.76 | 6.43 | 17.54 |
| [![](https://xeokit.github.io/xeokit-xkt-utils/assets/models/xkt/ifc_openhouse4/screenshot/screenshot.png)](https://xeokit.github.io/xeokit-xkt-utils/demos/demoXKT.html?xktSrc=.././assets/models/xkt/ifc_openhouse4/model.xkt) | [ifc_openhouse4](https://xeokit.github.io/xeokit-xkt-utils/demos/loadXKT.html?xktSrc=.././assets/models/xkt/ifc_openhouse4/model.xkt) | 0.24 | 0.06 | 60 | 40 | 613 | 1801 | 113.26 | 6.43 | 17.63 |
| [![](https://xeokit.github.io/xeokit-xkt-utils/assets/models/xkt/ifc_map/screenshot/screenshot.png)](https://xeokit.github.io/xeokit-xkt-utils/demos/demoXKT.html?xktSrc=.././assets/models/xkt/ifc_map/model.xkt) | [ifc_map](https://xeokit.github.io/xeokit-xkt-utils/demos/loadXKT.html?xktSrc=.././assets/models/xkt/ifc_map/model.xkt) | 9.62 | 0.47 | 60 | 1774 | 172268 | 431922 | 28779.42 | 939.71 | 30.63 |
| [![](https://xeokit.github.io/xeokit-xkt-utils/assets/models/xkt/ifc_rac_advanced_sample_project/screenshot/screenshot.png)](https://xeokit.github.io/xeokit-xkt-utils/demos/demoXKT.html?xktSrc=.././assets/models/xkt/ifc_rac_advanced_sample_project/model.xkt) | [ifc_rac_advanced_sample_project](https://xeokit.github.io/xeokit-xkt-utils/demos/loadXKT.html?xktSrc=.././assets/models/xkt/ifc_rac_advanced_sample_project/model.xkt) | 44.71 | 0.84 | 28 | 5561 | 283616 | 745100 | 45316.70 | 1776.91 | 25.50 |
| [![](https://xeokit.github.io/xeokit-xkt-utils/assets/models/xkt/ifc_rme_advanced_sample_project/screenshot/screenshot.png)](https://xeokit.github.io/xeokit-xkt-utils/demos/demoXKT.html?xktSrc=.././assets/models/xkt/ifc_rme_advanced_sample_project/model.xkt) | [ifc_rme_advanced_sample_project](https://xeokit.github.io/xeokit-xkt-utils/demos/loadXKT.html?xktSrc=.././assets/models/xkt/ifc_rme_advanced_sample_project/model.xkt) | 80.10 | 0.92 | 34 | 6442 | 345539 | 823082 | 35309.94 | 1632.98 | 21.62 |
| [![](https://xeokit.github.io/xeokit-xkt-utils/assets/models/xkt/laz_autzen/screenshot/screenshot.png)](https://xeokit.github.io/xeokit-xkt-utils/demos/demoXKT.html?xktSrc=.././assets/models/xkt/laz_autzen/model.xkt) | [laz_autzen](https://xeokit.github.io/xeokit-xkt-utils/demos/loadXKT.html?xktSrc=.././assets/models/xkt/laz_autzen/model.xkt) | 27.58 | 5.37 | 26 | 1 | undefined | 10653336 | 56350.99 | 71525.80 | 0.79 |
| [![](https://xeokit.github.io/xeokit-xkt-utils/assets/models/xkt/laz_indoor_scan/screenshot/screenshot.png)](https://xeokit.github.io/xeokit-xkt-utils/demos/demoXKT.html?xktSrc=.././assets/models/xkt/laz_indoor_scan/model.xkt) | [laz_indoor_scan](https://xeokit.github.io/xeokit-xkt-utils/demos/loadXKT.html?xktSrc=.././assets/models/xkt/laz_indoor_scan/model.xkt) | 1.27 | 0.53 | 60 | 1 | undefined | 808042 | 1644.72 | 3402.97 | 0.48 |
| [![](https://xeokit.github.io/xeokit-xkt-utils/assets/models/xkt/undefined/screenshot/screenshot.png)](https://xeokit.github.io/xeokit-xkt-utils/demos/demoXKT.html?xktSrc=.././assets/models/xkt/undefined/model.xkt) | [undefined](https://xeokit.github.io/xeokit-xkt-utils/demos/loadXKT.html?xktSrc=.././assets/models/xkt/undefined/model.xkt) | 2.69 | 0.56 | 60 | 3504 | 230246 | 367934 | 23075.65 | 1662.27 | 13.88 |
| [![](https://xeokit.github.io/xeokit-xkt-utils/assets/models/xkt/gltf_duplex/screenshot/screenshot.png)](https://xeokit.github.io/xeokit-xkt-utils/demos/demoXKT.html?xktSrc=.././assets/models/xkt/gltf_duplex/model.xkt) | [gltf_duplex](https://xeokit.github.io/xeokit-xkt-utils/demos/loadXKT.html?xktSrc=.././assets/models/xkt/gltf_duplex/model.xkt) | 0.26 | 0.30 | 60 | 291 | 15874 | 25262 | 1433.53 | 126.22 | 11.36 |
| [![](https://xeokit.github.io/xeokit-xkt-utils/assets/models/xkt/gltf_map/screenshot/screenshot.png)](https://xeokit.github.io/xeokit-xkt-utils/demos/demoXKT.html?xktSrc=.././assets/models/xkt/gltf_map/model.xkt) | [gltf_map](https://xeokit.github.io/xeokit-xkt-utils/demos/loadXKT.html?xktSrc=.././assets/models/xkt/gltf_map/model.xkt) | 2.81 | 0.52 | 60 | 1986 | 181108 | 354632 | 15785.04 | 1605.40 | 9.83 |
4 changes: 2 additions & 2 deletions perfTests/perfTestXKT.html
Original file line number Diff line number Diff line change
Expand Up @@ -45,9 +45,9 @@
utils,
Viewer,
XKTLoaderPlugin
} from "../assets/lib/xeokit-sdk.es.js";
} from "./../assets/lib/xeokit-sdk.es.js";

import {getRequestParams, signalTestComplete} from "../assets/lib/utils.js";
import {getRequestParams, signalTestComplete} from "./../assets/lib/utils.js";

const xktSrc = getRequestParams()["xktSrc"];

Expand Down
187 changes: 94 additions & 93 deletions perfTests/perfTests.js
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,8 @@ const package = require('../package.json');
const SERVER_PORT = 3000;
const SCREENSHOT_SIZE = [200, 200];
const HEADLESS = false;
const OUTPUT_DIR = "./models/xkt";
const OUTPUT_DIR = "./assets/models/xkt";
const TEST_REPORT_PATH = "./perfTests/index.md";

const firefoxOptions = {
product: 'firefox',
Expand Down Expand Up @@ -39,101 +40,101 @@ const chromeOptions = {
};

const SOURCE_FILES = [
// {
// modelId: "3dxml_widget",
// modelSrc:"./models/3dxml/widget.3dxml"
// },
// {
// modelId: "cityjson_csol",
// modelSrc:"./models/cityjson/csol.json"
// },
// {
// modelId: "cityjson_msol",
// modelSrc:"./models/cityjson/msol.json"
// },
// {
// modelId: "cityjson_msurface",
// modelSrc:"./models/cityjson/msurface.json"
// },
// {
// modelId: "cityjson_twocube",
// modelSrc:"./models/cityjson/twocube.json"
// },
// {
// modelId: "cityjson_cube",
// modelSrc:"./models/cityjson/cube.json"
// },
// {
// modelId: "cityjson_tetra",
// modelSrc:"./models/cityjson/tetra.json"
// },
// {
// modelId: "cityjson_torus",
// modelSrc:"./models/cityjson/torus.json"
// },
// {
// modelId: "cityjson_denhaag",
// modelSrc:"./models/cityjson/DenHaag_01.json"
// },
// {
// modelId: "cityjson_railway",
// modelSrc:"./models/cityjson/LoD3_Railway.json"
// },
// {
// modelId: "ifc_conferencecenter",
// modelSrc:"./models/ifc/OTCConferenceCenter.ifc"
// },
{
modelId: "3dxml_widget",
modelSrc:"./assets/models/3dxml/widget.3dxml"
},
{
modelId: "cityjson_csol",
modelSrc:"./assets/models/cityjson/csol.json"
},
{
modelId: "cityjson_msol",
modelSrc:"./assets/models/cityjson/msol.json"
},
{
modelId: "cityjson_msurface",
modelSrc:"./assets/models/cityjson/msurface.json"
},
{
modelId: "cityjson_twocube",
modelSrc:"./assets/models/cityjson/twocube.json"
},
{
modelId: "cityjson_cube",
modelSrc:"./assets/models/cityjson/cube.json"
},
{
modelId: "cityjson_tetra",
modelSrc:"./assets/models/cityjson/tetra.json"
},
{
modelId: "cityjson_torus",
modelSrc:"./assets/models/cityjson/torus.json"
},
{
modelId: "cityjson_denhaag",
modelSrc:"./assets/models/cityjson/DenHaag_01.json"
},
{
modelId: "cityjson_railway",
modelSrc:"./assets/models/cityjson/LoD3_Railway.json"
},
{
modelId: "ifc_conferencecenter",
modelSrc:"./assets/models/ifc/OTCConferenceCenter.ifc"
},
{
modelId: "ifc_duplex",
modelSrc:"./models/ifc/Duplex.ifc"
modelSrc:"./assets/models/ifc/Duplex.ifc"
},
{
modelId: "ifc_openhouse2x3",
modelSrc:"./assets/models/ifc/IfcOpenHouse2x3.ifc"
},
{
modelId: "ifc_openhouse4",
modelSrc:"./assets/models/ifc/IfcOpenHouse4.ifc"
},
{
modelId: "ifc_map",
modelSrc:"./assets/models/ifc/MAP.ifc"
},
{
modelId: "ifc_rac_advanced_sample_project",
modelSrc:"./assets/models/ifc/rac_advanced_sample_project.ifc"
},
{
modelId: "ifc_rme_advanced_sample_project",
modelSrc:"./assets/models/ifc/rme_advanced_sample_project.ifc"
},
{
modelId: "laz_autzen",
modelSrc:"./assets/models/laz/autzen.laz"
},
{
modelId: "laz_indoor_scan",
modelSrc:"./assets/models/laz/indoor.0.1.laz"
},
// {
// modelId: "ifc_openhouse2x3",
// modelSrc:"./models/ifc/IfcOpenHouse2x3.ifc"
// },
// {
// modelId: "ifc_openhouse4",
// modelSrc:"./models/ifc/IfcOpenHouse4.ifc"
// },
// {
// modelId: "ifc_map",
// modelSrc:"./models/ifc/MAP.ifc"
// },
// {
// modelId: "ifc_rac_advanced_sample_project",
// modelSrc:"./models/ifc/rac_advanced_sample_project.ifc"
// },
// {
// modelId: "ifc_rme_advanced_sample_project",
// modelSrc:"./models/ifc/rme_advanced_sample_project.ifc"
// },
// {
// modelId: "laz_autzen",
// modelSrc:"./models/laz/autzen.laz"
// },
// {
// modelId: "laz_indoor_scan",
// modelSrc:"./models/laz/indoor.0.1.laz"
// },
// // // // // // // // // "stl/ascii/slotted_disk.stl"},
// // // // // // // // // "stl/binary/spurGear.stl"},
// {
// modelSrc:"./models/gltf/Schependomlaan.gltf",
// metaModelSrc: "./metaModels/Schependomlaan.json"
// },
// {
// modelId: "gltf_duplex",
// modelSrc:"./models/gltf/Duplex.gltf",
// metaModelSrc: "./metaModels/Duplex.json"
// },
// {
// modelId: "gltf_map",
// modelSrc:"./models/gltf/MAP.gltf",
// metaModelSrc: "./metaModels/MAP.json"
// },
{
modelSrc:"./assets/models/gltf/Schependomlaan.gltf",
metaModelSrc: "./assets/metaModels/Schependomlaan.json"
},
{
modelId: "gltf_duplex",
modelSrc:"./assets/models/gltf/Duplex.gltf",
metaModelSrc: "./assets/metaModels/Duplex.json"
},
{
modelId: "gltf_map",
modelSrc:"./assets/models/gltf/MAP.gltf",
metaModelSrc: "./assets/metaModels/MAP.json"
},
// {
// modelId: "gltf_map_pointcloud",
// modelSrc:"./models/gltf/MAP_from_e57_inf3cm.gltf"
// modelSrc:"./assets/models/gltf/MAP_from_e57_inf3cm.gltf"
// }
];

Expand All @@ -152,8 +153,8 @@ async function performanceTest() {
await convertModels(testStats);
await testModels(testStats);
const statsMarkdown = statsToMarkdown(testStats);
await fs.promises.writeFile("perfTestResults.json", JSON.stringify(testStats, null, "\t"));
await fs.promises.writeFile("perfTestResults.md", statsMarkdown);
//await fs.promises.writeFile("perfTestResults.json", JSON.stringify(testStats, null, "\t"));
await fs.promises.writeFile(TEST_REPORT_PATH, statsMarkdown);
console.log("Done.");
process.exit(0);
}
Expand Down Expand Up @@ -216,7 +217,7 @@ async function testModels(testStats) {
testStats.browserVersion = await page.browser().version();
}
await page.setDefaultNavigationTimeout(3000000);
await page.goto(`http://localhost:${SERVER_PORT}/perfTestXKT.html?xktSrc=../${xktDest}`);
await page.goto(`http://localhost:${SERVER_PORT}/perfTests/perfTestXKT.html?xktSrc=../${xktDest}`);
await page.waitForSelector('#percyLoaded')
const element = await page.$('#percyLoaded')
const value = await page.evaluate(el => el.innerText, element)
Expand Down Expand Up @@ -277,7 +278,7 @@ function statsToMarkdown(testStats) {
rows.push('| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |');
for (let modelId in modelStats) {
const stats = modelStats[modelId];
rows.push(`| [![](https://xeokit.github.io/xeokit-xkt-utils/tests/models/xkt/${modelId}/screenshot/screenshot.png)](https://xeokit.github.io/xeokit-xkt-utils/tests/perfTestXKT.html?xktSrc=../${stats.xktDest}) | [${modelId}](./tests/loadXKT.html?xktSrc=../${stats.xktDest}) | ${stats.conversionTime} | ${stats.loadingTime} | ${stats.fps} | ${stats.numObjects} | ${stats.numTriangles} | ${stats.numVertices} | ${stats.sourceSize} | ${stats.xktSize} | ${stats.compressionRatio} |`);
rows.push(`| [![](https://xeokit.github.io/xeokit-xkt-utils/assets/models/xkt/${modelId}/screenshot/screenshot.png)](https://xeokit.github.io/xeokit-xkt-utils/demos/demoXKT.html?xktSrc=../${stats.xktDest}) | [${modelId}](https://xeokit.github.io/xeokit-xkt-utils/demos/loadXKT.html?xktSrc=../${stats.xktDest}) | ${stats.conversionTime} | ${stats.loadingTime} | ${stats.fps} | ${stats.numObjects} | ${stats.numTriangles} | ${stats.numVertices} | ${stats.sourceSize} | ${stats.xktSize} | ${stats.compressionRatio} |`);
}
return rows.join("\n");
}
Expand Down

0 comments on commit 1db47fc

Please sign in to comment.