"Tracer"
[cursor := TDBCursor traceForBlock: aBlock]
timeToRunWithoutGC.
"Serializer"
[(T4DTrace forCursor: cursor) storeJsonInFileNamed: 'test.json']
timeToRunWithoutGC.
"Serialization"
(FileDirectory default / 'test.json') size.
General setup:
- Build trace4d (
yarn build
) and run it locally (npx http-server
) - Open the visualization in a new Chrome process (ideally, with a new profile without other windows or extensions)
- Keep the Chrome DevTools closed between the measurements
- Invoke each visualization from a blank page (
about:blank
) to avoid GC effects - Configure each visualization with the parameters described in the experience report
- Run each measurement 3 times and take the best result
Run trace4d with the ?measureStartTime
query parameter.
Run trace4d with the ?countFPS&measureFPS
query parameters.
Run the force simulation for 30 seconds and take the average frame rate:
traceMap.stats.logs().FPS.slice(2, 30)
Stop the force simulation after 10 seconds, then run the animation for 30 seconds and take the average frame rate:
traceMap.stats.logs().FPS.slice(23, 53)
Use the Chrome Task manager to measure the memory consumption:
- Open the Chrome Task Manager and locate the trace4d process and the GPU process
- Log the initial memory consumption of the GPU process
- Invoke the visualization, stop the force simulation after 10 seconds, and play the entire animation
- Log the final memory consumption of the GPU process and record the difference
- Log the memory consumption of the trace4d process
For each memory measurement, wait 30 seconds for the memory consumption to stabilize and report the minimum value.