diff --git a/perfTests/index.md b/perfTests/index.md new file mode 100644 index 00000000..1fb47480 --- /dev/null +++ b/perfTests/index.md @@ -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 | \ No newline at end of file diff --git a/perfTests/perfTestXKT.html b/perfTests/perfTestXKT.html index beb257e5..fa75cf4b 100644 --- a/perfTests/perfTestXKT.html +++ b/perfTests/perfTestXKT.html @@ -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"]; diff --git a/perfTests/perfTests.js b/perfTests/perfTests.js index 3a3aafa6..cb47f8bb 100644 --- a/perfTests/perfTests.js +++ b/perfTests/perfTests.js @@ -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', @@ -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" // } ]; @@ -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); } @@ -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) @@ -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"); }