benchmark - nphyx/voctopus GitHub Wiki

Benchmarks

This page includes some benchmarks run against the current version of Voctopus. They're useful as a way to measure the impact of code changes. A brief description of each test suite follows.

Init Tests

These benchmarks cover certain maintenance operations:

  • Create: the time it takes to instantiate a new Voctopus
  • Expand: how long it takes to expand a buffer to maximum size
  • Init: the total time to initialize every voxel in the octree to full depth
  • Walk: the total time to walk to each voxel in the tree

R/W Tests

These tests measure how long reads and writes take using different interfaces. The octree is expanded to full size so that expansions won't interrupt r/w.

  • Object: how long it takes to read/write using the getVoxel and setVoxel methods
  • Direct: time to read/write using the direct getter/setter methods (Voc.set[field])
  • Octet: time to read/write using the octet batch write (Voc.set[field])

Memory Tests

These tests measure r/w speeds without expansion, and how much memory is consumed by Voctopus' on-demand buffer expansion. The direct-write interfaces are used here.

BEGIN BENCHMARK

Initialization Tests

Depth 3 4 5 6 7 8
Create 0.000s 0.000s 0.000s 0.000s 0.000s 0.000s
Expand 0.001s 0.000s 0.000s 0.007s 0.045s 0.296s
Init 0.002s 0.003s 0.007s 0.021s 0.140s 1.217s
Walk 0.001s 0.002s 0.004s 0.012s 0.074s 0.798s

R/W Tests Depth 8

Type Read Write R/s W/s Dims Voxels
voxel 4.810s 4.780s 3487987 3509878 256^3 16777216
direct 7.439s 6.345s 2255305 2644163 256^3 16777216
octet 2.362s 1.590s 7102970 10551708 256^3 16777216

Memory Tests

Depth Dims Read Write Voxels Octets Memory
5 32^3 0.009s 0.010s 32768 137 0.063MB
6 64^3 0.069s 0.091s 262144 11611 0.063MB
7 128^3 0.897s 1.321s 2097152 117403 0.500MB
8 256^3 7.468s 19.394s 16777216 1136611 4.000MB