UNPKG

@xeokit/xeokit-sdk

Version:

3D BIM IFC Viewer SDK for AEC engineering applications. Open Source JavaScript Toolkit based on pure WebGL for top performance, real-world coordinates and full double precision

50 lines (41 loc) 1.49 kB
export const dataTextureRamStats = { sizeDataColorsAndFlags: 0, sizeDataPositionDecodeMatrices: 0, sizeDataTextureOffsets: 0, sizeDataTexturePositions: 0, sizeDataTextureIndices: 0, sizeDataTexturePortionIds: 0, numberOfGeometries: 0, numberOfPortions: 0, numberOfLayers: 0, numberOfTextures: 0, totalLines: 0, totalLines8Bits: 0, totalLines16Bits: 0, totalLines32Bits: 0, cannotCreatePortion: { because10BitsObjectId: 0, becauseTextureSize: 0, }, overheadSizeAlignementIndices: 0, overheadSizeAlignementEdgeIndices: 0, }; window.printDataTextureRamStats = function () { console.log(JSON.stringify(dataTextureRamStats, null, 4)); let totalRamSize = 0; Object.keys(dataTextureRamStats).forEach(key => { if (key.startsWith("size")) { totalRamSize += dataTextureRamStats[key]; } }); console.log(`Total size ${totalRamSize} bytes (${(totalRamSize / 1000 / 1000).toFixed(2)} MB)`); console.log(`Avg bytes / triangle: ${(totalRamSize / dataTextureRamStats.totalLines).toFixed(2)}`); let percentualRamStats = {}; Object.keys(dataTextureRamStats).forEach(key => { if (key.startsWith("size")) { percentualRamStats[key] = `${(dataTextureRamStats[key] / totalRamSize * 100).toFixed(2)} % of total`; } }); console.log(JSON.stringify({percentualRamUsage: percentualRamStats}, null, 4)); };