COMPAS serialization benchmark

generated 2026-10-16 21:24 · preset quick · repeat 5 · seed 42 · compas 2.15.1 · @py3: compas 2.15.0 (remove-future @ 6fb509e + 0001-accept-frame-components-and-declare-typing-extensions.patch)

Show formats
31/31 of compas_pb's serializable types are benchmarked. — full coverage.
json · compact text, losslesscompas_pb · protobuf binary, double + flat arrays (optimized)json@py3 · compact text, lossless (compas variant 'py3')

arcs

Round-trip time
1,000 elements
json
28.3 ms
compas_pb
17.6 ms
json@py3
29.6 ms
10,000 elements
json
295.0 ms
compas_pb
183.5 ms
json@py3
302.5 ms
Wire size
1,000 elements
json
262.0 KB
compas_pb
130.9 KB
json@py3
262.0 KB
10,000 elements
json
2.6 MB
compas_pb
1.3 MB
json@py3
2.6 MB
sizeformatwire sizevs JSONdumploadround-tripload MB/speak memmax errlossless
1,000json262.0 KB1.0×6.1 ms22.2 ms28.3 ms12.0621.5 MB0✓ yes
1,000compas_pb130.9 KB2.002×5.0 ms12.6 ms17.6 ms10.6171.1 MB0✓ yes
1,000json@py3262.0 KB1.0×6.3 ms23.3 ms29.6 ms11.4931.5 MB0✓ yes
10,000json2.6 MB1.0×61.3 ms233.7 ms295.0 ms11.47914.7 MB0✓ yes
10,000compas_pb1.3 MB2.002×49.8 ms133.7 ms183.5 ms10.02611.1 MB0✓ yes
10,000json@py32.6 MB1.0×63.9 ms238.6 ms302.5 ms11.24214.5 MB0✓ yes

beziers

Round-trip time
1,000 elements
json
16.0 ms
compas_pb
9.5 ms
json@py3
16.0 ms
10,000 elements
json
170.3 ms
compas_pb
99.0 ms
json@py3
167.6 ms
Wire size
1,000 elements
json
325.4 KB
compas_pb
151.4 KB
json@py3
325.4 KB
10,000 elements
json
3.2 MB
compas_pb
1.5 MB
json@py3
3.2 MB
sizeformatwire sizevs JSONdumploadround-tripload MB/speak memmax errlossless
1,000json325.4 KB1.0×7.6 ms8.5 ms16.0 ms39.4311.6 MB0✓ yes
1,000compas_pb151.4 KB2.15×4.1 ms5.4 ms9.5 ms28.9691.1 MB0✓ yes
1,000json@py3325.4 KB1.0×7.8 ms8.3 ms16.0 ms40.3441.5 MB0✓ yes
10,000json3.2 MB1.0×75.7 ms94.7 ms170.3 ms35.20115.5 MB0✓ yes
10,000compas_pb1.5 MB2.15×41.8 ms57.2 ms99.0 ms27.10211.2 MB0✓ yes
10,000json@py33.2 MB1.0×78.0 ms89.7 ms167.6 ms37.16315.2 MB0✓ yes

boxes

Round-trip time
1,000 elements
json
28.7 ms
compas_pb
16.8 ms
json@py3
29.3 ms
10,000 elements
json
294.6 ms
compas_pb
173.0 ms
json@py3
299.1 ms
Wire size
1,000 elements
json
278.9 KB
compas_pb
127.9 KB
json@py3
278.9 KB
10,000 elements
json
2.7 MB
compas_pb
1.2 MB
json@py3
2.7 MB
sizeformatwire sizevs JSONdumploadround-tripload MB/speak memmax errlossless
1,000json278.9 KB1.0×6.3 ms22.3 ms28.7 ms12.7861.5 MB0✓ yes
1,000compas_pb127.9 KB2.18×4.6 ms12.2 ms16.8 ms10.7281.2 MB0✓ yes
1,000json@py3278.9 KB1.0×6.6 ms22.7 ms29.3 ms12.5971.5 MB0✓ yes
10,000json2.7 MB1.0×62.3 ms232.3 ms294.6 ms12.2915.3 MB0✓ yes
10,000compas_pb1.2 MB2.18×46.7 ms126.3 ms173.0 ms10.3711.5 MB0✓ yes
10,000json@py32.7 MB1.0×64.2 ms234.9 ms299.1 ms12.15815.3 MB0✓ yes

capsules

Round-trip time
1,000 elements
json
27.7 ms
compas_pb
16.6 ms
json@py3
28.7 ms
10,000 elements
json
285.7 ms
compas_pb
169.8 ms
json@py3
295.0 ms
Wire size
1,000 elements
json
259.6 KB
compas_pb
122.1 KB
json@py3
259.6 KB
10,000 elements
json
2.5 MB
compas_pb
1.2 MB
json@py3
2.5 MB
sizeformatwire sizevs JSONdumploadround-tripload MB/speak memmax errlossless
1,000json259.6 KB1.0×6.0 ms21.7 ms27.7 ms12.261.5 MB0✓ yes
1,000compas_pb122.1 KB2.127×4.6 ms12.0 ms16.6 ms10.411.1 MB0✓ yes
1,000json@py3259.6 KB1.0×6.2 ms22.5 ms28.7 ms11.7921.5 MB0✓ yes
10,000json2.5 MB1.0×59.4 ms226.2 ms285.7 ms11.74914.7 MB0✓ yes
10,000compas_pb1.2 MB2.127×44.8 ms125.0 ms169.8 ms9.99711.1 MB0✓ yes
10,000json@py32.5 MB1.0×61.4 ms233.6 ms295.0 ms11.3814.7 MB0✓ yes

circles

Round-trip time
1,000 elements
json
28.1 ms
compas_pb
16.5 ms
json@py3
27.7 ms
10,000 elements
json
280.5 ms
compas_pb
170.4 ms
json@py3
284.6 ms
Wire size
1,000 elements
json
231.6 KB
compas_pb
112.3 KB
json@py3
231.6 KB
10,000 elements
json
2.3 MB
compas_pb
1.1 MB
json@py3
2.3 MB
sizeformatwire sizevs JSONdumploadround-tripload MB/speak memmax errlossless
1,000json231.6 KB1.0×5.7 ms22.4 ms28.1 ms10.5851.4 MB0✓ yes
1,000compas_pb112.3 KB2.062×4.4 ms12.1 ms16.5 ms9.521.0 MB0✓ yes
1,000json@py3231.6 KB1.0×5.8 ms21.9 ms27.7 ms10.8381.4 MB0✓ yes
10,000json2.3 MB1.0×55.7 ms224.8 ms280.5 ms10.55313.6 MB0✓ yes
10,000compas_pb1.1 MB2.063×45.1 ms125.3 ms170.4 ms9.17910.3 MB0✓ yes
10,000json@py32.3 MB1.0×56.5 ms228.2 ms284.6 ms10.39713.4 MB0✓ yes

cones

Round-trip time
1,000 elements
json
27.8 ms
compas_pb
16.5 ms
json@py3
28.7 ms
10,000 elements
json
306.4 ms
compas_pb
173.0 ms
json@py3
293.7 ms
Wire size
1,000 elements
json
256.5 KB
compas_pb
119.2 KB
json@py3
256.5 KB
10,000 elements
json
2.5 MB
compas_pb
1.2 MB
json@py3
2.5 MB
sizeformatwire sizevs JSONdumploadround-tripload MB/speak memmax errlossless
1,000json256.5 KB1.0×6.1 ms21.7 ms27.8 ms12.0891.5 MB0✓ yes
1,000compas_pb119.2 KB2.153×4.5 ms12.0 ms16.5 ms10.1821.1 MB0✓ yes
1,000json@py3256.5 KB1.0×6.2 ms22.5 ms28.7 ms11.6811.5 MB0✓ yes
10,000json2.5 MB1.0×59.6 ms246.8 ms306.4 ms10.64314.7 MB0✓ yes
10,000compas_pb1.2 MB2.153×45.3 ms127.8 ms173.0 ms9.5511.1 MB0✓ yes
10,000json@py32.5 MB1.0×60.8 ms233.0 ms293.7 ms11.27414.7 MB0✓ yes

cylinders

Round-trip time
1,000 elements
json
28.9 ms
compas_pb
16.6 ms
json@py3
28.8 ms
10,000 elements
json
289.9 ms
compas_pb
170.9 ms
json@py3
293.5 ms
Wire size
1,000 elements
json
260.4 KB
compas_pb
123.1 KB
json@py3
260.4 KB
10,000 elements
json
2.5 MB
compas_pb
1.2 MB
json@py3
2.5 MB
sizeformatwire sizevs JSONdumploadround-tripload MB/speak memmax errlossless
1,000json260.4 KB1.0×6.0 ms23.0 ms28.9 ms11.6151.5 MB0✓ yes
1,000compas_pb123.1 KB2.116×4.6 ms12.0 ms16.6 ms10.4611.1 MB0✓ yes
1,000json@py3260.4 KB1.0×6.3 ms22.5 ms28.8 ms11.861.5 MB0✓ yes
10,000json2.5 MB1.0×61.4 ms228.5 ms289.9 ms11.66914.7 MB0✓ yes
10,000compas_pb1.2 MB2.116×45.9 ms125.0 ms170.9 ms10.08311.1 MB0✓ yes
10,000json@py32.5 MB1.0×61.4 ms232.1 ms293.5 ms11.48714.8 MB0✓ yes

ellipses

Round-trip time
1,000 elements
json
28.1 ms
compas_pb
16.9 ms
json@py3
28.3 ms
10,000 elements
json
289.3 ms
compas_pb
174.5 ms
json@py3
290.1 ms
Wire size
1,000 elements
json
257.6 KB
compas_pb
122.1 KB
json@py3
257.6 KB
10,000 elements
json
2.5 MB
compas_pb
1.2 MB
json@py3
2.5 MB
sizeformatwire sizevs JSONdumploadround-tripload MB/speak memmax errlossless
1,000json257.6 KB1.0×6.0 ms22.1 ms28.1 ms11.9091.4 MB0✓ yes
1,000compas_pb122.1 KB2.11×4.6 ms12.3 ms16.9 ms10.1331.1 MB0✓ yes
1,000json@py3257.6 KB1.0×6.1 ms22.2 ms28.3 ms11.8841.4 MB0✓ yes
10,000json2.5 MB1.0×61.2 ms228.1 ms289.3 ms11.56514.3 MB0✓ yes
10,000compas_pb1.2 MB2.11×45.9 ms128.7 ms174.5 ms9.71610.7 MB0✓ yes
10,000json@py32.5 MB1.0×61.2 ms228.9 ms290.1 ms11.52314.1 MB0✓ yes

frames

Round-trip time
1,000 elements
json
19.8 ms
compas_pb
15.4 ms
json@py3
19.8 ms
10,000 elements
json
201.1 ms
compas_pb
157.6 ms
json@py3
204.5 ms
Wire size
1,000 elements
json
288.9 KB
compas_pb
137.7 KB
json@py3
288.9 KB
10,000 elements
json
2.8 MB
compas_pb
1.3 MB
json@py3
2.8 MB
sizeformatwire sizevs JSONdumploadround-tripload MB/speak memmax errlossless
1,000json288.9 KB1.0×6.5 ms13.3 ms19.8 ms22.2231.3 MB4.4e-16✗ no
1,000compas_pb137.7 KB2.098×4.3 ms11.2 ms15.4 ms12.598882.6 KB4.4e-16✗ no
1,000json@py3288.9 KB1.0×6.5 ms13.3 ms19.8 ms22.3021.3 MB4.4e-16✗ no
10,000json2.8 MB1.0×65.7 ms135.4 ms201.1 ms21.8512.5 MB5.6e-16✗ no
10,000compas_pb1.3 MB2.099×42.5 ms115.0 ms157.6 ms12.2568.6 MB5.6e-16✗ no
10,000json@py32.8 MB1.0×66.5 ms138.0 ms204.5 ms21.44412.5 MB5.6e-16✗ no

graph

Round-trip time
1,000 elements
json
16.4 ms
compas_pb
3.5 ms
json@py3
16.6 ms
10,000 elements
json
183.0 ms
compas_pb
35.8 ms
json@py3
192.2 ms
Wire size
1,000 elements
json
74.9 KB
compas_pb
36.3 KB
json@py3
74.9 KB
10,000 elements
json
775.1 KB
compas_pb
360.2 KB
json@py3
775.1 KB
sizeformatwire sizevs JSONdumploadround-tripload MB/speak memmax errlossless
1,000json74.9 KB1.0×1.5 ms15.0 ms16.4 ms5.121.7 MB0✓ yes
1,000compas_pb36.3 KB2.064×1.4 ms2.1 ms3.5 ms17.4941.0 MB0✓ yes
1,000json@py374.9 KB1.0×1.5 ms15.2 ms16.6 ms5.0641.8 MB0✓ yes
10,000json775.1 KB1.0×15.0 ms168.0 ms183.0 ms4.72517.0 MB0✓ yes
10,000compas_pb360.2 KB2.152×13.4 ms22.3 ms35.8 ms16.51710.0 MB0✓ yes
10,000json@py3775.1 KB1.0×15.3 ms176.9 ms192.2 ms4.48717.0 MB0✓ yes

hyperbolas

Round-trip time
1,000 elements
json
28.1 ms
compas_pb
19.0 ms
json@py3
29.2 ms
10,000 elements
json
288.8 ms
compas_pb
173.5 ms
json@py3
299.4 ms
Wire size
1,000 elements
json
259.5 KB
compas_pb
124.0 KB
json@py3
270.3 KB
10,000 elements
json
2.5 MB
compas_pb
1.2 MB
json@py3
2.6 MB
sizeformatwire sizevs JSONdumploadround-tripload MB/speak memmax errlossless
1,000json259.5 KB1.0×5.9 ms22.2 ms28.1 ms11.971.4 MB0✓ yes
1,000compas_pb124.0 KB2.092×4.5 ms14.5 ms19.0 ms8.7821.1 MB0✓ yes
1,000json@py3270.3 KB0.96×6.4 ms22.8 ms29.2 ms12.1321.5 MB0✓ yes
10,000json2.5 MB1.0×59.6 ms229.2 ms288.8 ms11.59814.3 MB0✓ yes
10,000compas_pb1.2 MB2.093×46.3 ms127.3 ms173.5 ms9.97910.7 MB0✓ yes
10,000json@py32.6 MB0.96×63.9 ms235.5 ms299.4 ms11.75214.4 MB0✓ yes

lines

Round-trip time
1,000 elements
json
13.3 ms
compas_pb
10.1 ms
json@py3
13.7 ms
10,000 elements
json
132.9 ms
compas_pb
104.7 ms
json@py3
138.1 ms
Wire size
1,000 elements
json
213.0 KB
compas_pb
106.5 KB
json@py3
213.0 KB
10,000 elements
json
2.1 MB
compas_pb
1.0 MB
json@py3
2.1 MB
sizeformatwire sizevs JSONdumploadround-tripload MB/speak memmax errlossless
1,000json213.0 KB1.0×6.0 ms7.2 ms13.3 ms30.238998.1 KB0✓ yes
1,000compas_pb106.5 KB2.001×4.7 ms5.4 ms10.1 ms20.151663.3 KB0✓ yes
1,000json@py3213.0 KB1.0×6.2 ms7.5 ms13.7 ms28.905973.4 KB0✓ yes
10,000json2.1 MB1.0×60.5 ms72.4 ms132.9 ms30.1119.6 MB0✓ yes
10,000compas_pb1.0 MB2.001×48.0 ms56.7 ms104.7 ms19.226.5 MB0✓ yes
10,000json@py32.1 MB1.0×61.5 ms76.6 ms138.1 ms28.469.4 MB0✓ yes

mesh

Round-trip time
1,000 elements
json
4.6 ms
compas_pb
3.7 ms
json@py3
4.8 ms
10,000 elements
json
49.5 ms
compas_pb
37.6 ms
json@py3
49.8 ms
Wire size
1,000 elements
json
80.2 KB
compas_pb
32.1 KB
json@py3
80.2 KB
10,000 elements
json
864.1 KB
compas_pb
320.3 KB
json@py3
864.1 KB
sizeformatwire sizevs JSONdumploadround-tripload MB/speak memmax errlossless
1,000json80.2 KB1.0×1.3 ms3.3 ms4.6 ms24.6351.4 MB0✓ yes
1,000compas_pb32.1 KB2.496×0.8 ms2.9 ms3.7 ms11.464816.9 KB0✓ yes
1,000json@py380.2 KB1.0×1.3 ms3.5 ms4.8 ms23.5351.4 MB0✓ yes
10,000json864.1 KB1.0×13.0 ms36.5 ms49.5 ms24.25413.9 MB0✓ yes
10,000compas_pb320.3 KB2.698×8.3 ms29.3 ms37.6 ms11.2047.9 MB0✓ yes
10,000json@py3864.1 KB1.0×12.9 ms36.9 ms49.8 ms23.96313.9 MB0✓ yes

mesh_attrs

Round-trip time
1,000 elements
json
5.3 ms
compas_pb
3.9 ms
json@py3
5.4 ms
10,000 elements
json
55.9 ms
compas_pb
40.9 ms
json@py3
56.9 ms
Wire size
1,000 elements
json
109.5 KB
compas_pb
40.2 KB
json@py3
109.5 KB
10,000 elements
json
1.1 MB
compas_pb
398.5 KB
json@py3
1.1 MB
sizeformatwire sizevs JSONdumploadround-tripload MB/speak memmax errlossless
1,000json109.5 KB1.0×1.7 ms3.6 ms5.3 ms30.7151.4 MB0✓ yes
1,000compas_pb40.2 KB2.726×0.9 ms3.0 ms3.9 ms13.859896.7 KB0✓ yes
1,000json@py3109.5 KB1.0×1.7 ms3.7 ms5.4 ms30.5341.4 MB0✓ yes
10,000json1.1 MB1.0×16.8 ms39.1 ms55.9 ms30.11314.4 MB0✓ yes
10,000compas_pb398.5 KB2.886×9.7 ms31.2 ms40.9 ms13.0858.6 MB0✓ yes
10,000json@py31.1 MB1.0×17.2 ms39.7 ms56.9 ms29.66714.4 MB0✓ yes

parabolas

Round-trip time
1,000 elements
json
29.2 ms
compas_pb
16.5 ms
json@py3
28.0 ms
10,000 elements
json
284.3 ms
compas_pb
169.2 ms
json@py3
285.5 ms
Wire size
1,000 elements
json
232.9 KB
compas_pb
114.3 KB
json@py3
232.9 KB
10,000 elements
json
2.3 MB
compas_pb
1.1 MB
json@py3
2.3 MB
sizeformatwire sizevs JSONdumploadround-tripload MB/speak memmax errlossless
1,000json232.9 KB1.0×7.0 ms22.1 ms29.2 ms10.771.4 MB0✓ yes
1,000compas_pb114.3 KB2.039×4.5 ms12.0 ms16.5 ms9.7361.0 MB0✓ yes
1,000json@py3232.9 KB1.0×5.8 ms22.2 ms28.0 ms10.7281.4 MB0✓ yes
10,000json2.3 MB1.0×56.8 ms227.5 ms284.3 ms10.48313.6 MB0✓ yes
10,000compas_pb1.1 MB2.039×44.7 ms124.5 ms169.2 ms9.39910.3 MB0✓ yes
10,000json@py32.3 MB1.0×58.3 ms227.2 ms285.5 ms10.49713.4 MB0✓ yes

planes

Round-trip time
1,000 elements
json
11.7 ms
compas_pb
8.7 ms
json@py3
11.9 ms
10,000 elements
json
120.3 ms
compas_pb
89.8 ms
json@py3
120.7 ms
Wire size
1,000 elements
json
219.9 KB
compas_pb
107.4 KB
json@py3
219.9 KB
10,000 elements
json
2.1 MB
compas_pb
1.0 MB
json@py3
2.1 MB
sizeformatwire sizevs JSONdumploadround-tripload MB/speak memmax errlossless
1,000json219.9 KB1.0×4.9 ms6.9 ms11.7 ms32.736964.2 KB2.2e-16✗ no
1,000compas_pb107.4 KB2.046×3.6 ms5.1 ms8.7 ms21.43616.4 KB2.2e-16✗ no
1,000json@py3219.9 KB1.0×5.0 ms6.9 ms11.9 ms32.565951.5 KB2.2e-16✗ no
10,000json2.1 MB1.0×48.5 ms71.8 ms120.3 ms31.3759.2 MB2.2e-16✗ no
10,000compas_pb1.0 MB2.047×36.2 ms53.6 ms89.8 ms20.5326.0 MB2.2e-16✗ no
10,000json@py32.1 MB1.0×49.9 ms70.8 ms120.7 ms31.7859.2 MB2.2e-16✗ no

pointcloud

Round-trip time
10,000 elements
json
24.7 ms
compas_pb
10.1 ms
json@py3
24.3 ms
100,000 elements
json
265.1 ms
compas_pb
135.0 ms
json@py3
262.2 ms
Wire size
10,000 elements
json
567.0 KB
compas_pb
234.4 KB
json@py3
567.0 KB
100,000 elements
json
5.5 MB
compas_pb
2.3 MB
json@py3
5.5 MB
sizeformatwire sizevs JSONdumploadround-tripload MB/speak memmax errlossless
10,000json567.0 KB1.0×13.1 ms11.5 ms24.7 ms50.3453.8 MB0✓ yes
10,000compas_pb234.4 KB2.419×2.2 ms7.9 ms10.1 ms30.4383.1 MB0✓ yes
10,000json@py3567.0 KB1.0×13.1 ms11.2 ms24.3 ms51.9073.8 MB0✓ yes
100,000json5.5 MB1.0×134.3 ms130.8 ms265.1 ms44.38137.6 MB0✓ yes
100,000compas_pb2.3 MB2.419×22.2 ms112.8 ms135.0 ms21.26931.3 MB0✓ yes
100,000json@py35.5 MB1.0×131.7 ms130.5 ms262.2 ms44.48537.6 MB0✓ yes

points

Round-trip time
1,000 elements
json
6.4 ms
compas_pb
4.8 ms
json@py3
6.5 ms
10,000 elements
json
67.4 ms
compas_pb
49.2 ms
json@py3
67.2 ms
Wire size
1,000 elements
json
141.7 KB
compas_pb
77.2 KB
json@py3
141.7 KB
10,000 elements
json
1.4 MB
compas_pb
771.5 KB
json@py3
1.4 MB
sizeformatwire sizevs JSONdumploadround-tripload MB/speak memmax errlossless
1,000json141.7 KB1.0×3.1 ms3.4 ms6.4 ms43.13496.6 KB0✓ yes
1,000compas_pb77.2 KB1.836×2.7 ms2.2 ms4.8 ms36.585233.5 KB0✓ yes
1,000json@py3141.7 KB1.0×3.1 ms3.4 ms6.5 ms42.767502.3 KB0✓ yes
10,000json1.4 MB1.0×31.7 ms35.7 ms67.4 ms40.6534.7 MB0✓ yes
10,000compas_pb771.5 KB1.836×27.0 ms22.2 ms49.2 ms35.6162.3 MB0✓ yes
10,000json@py31.4 MB1.0×32.0 ms35.2 ms67.2 ms41.1514.7 MB0✓ yes

polygons

Round-trip time
1,000 elements
json
27.3 ms
compas_pb
17.1 ms
json@py3
29.4 ms
10,000 elements
json
284.4 ms
compas_pb
177.6 ms
json@py3
305.9 ms
Wire size
1,000 elements
json
439.6 KB
compas_pb
199.2 KB
json@py3
439.6 KB
10,000 elements
json
4.3 MB
compas_pb
1.9 MB
json@py3
4.3 MB
sizeformatwire sizevs JSONdumploadround-tripload MB/speak memmax errlossless
1,000json439.6 KB1.0×10.1 ms17.2 ms27.3 ms26.2332.2 MB0✓ yes
1,000compas_pb199.2 KB2.206×4.9 ms12.2 ms17.1 ms16.7071.7 MB0✓ yes
1,000json@py3439.6 KB1.0×10.4 ms19.0 ms29.4 ms23.6612.3 MB0✓ yes
10,000json4.3 MB1.0×103.7 ms180.7 ms284.4 ms24.92122.4 MB0✓ yes
10,000compas_pb1.9 MB2.207×48.3 ms129.3 ms177.6 ms15.78217.0 MB0✓ yes
10,000json@py34.3 MB1.0×108.3 ms197.6 ms305.9 ms22.78822.4 MB0✓ yes

polyhedrons

Round-trip time
1,000 elements
json
14.5 ms
compas_pb
12.6 ms
json@py3
14.7 ms
10,000 elements
json
165.2 ms
compas_pb
127.1 ms
json@py3
151.4 ms
Wire size
1,000 elements
json
372.3 KB
compas_pb
180.7 KB
json@py3
372.3 KB
10,000 elements
json
3.6 MB
compas_pb
1.8 MB
json@py3
3.6 MB
sizeformatwire sizevs JSONdumploadround-tripload MB/speak memmax errlossless
1,000json372.3 KB1.0×7.6 ms6.9 ms14.5 ms54.8991.7 MB0✓ yes
1,000compas_pb180.7 KB2.06×6.1 ms6.5 ms12.6 ms28.6311.2 MB0✓ yes
1,000json@py3372.3 KB1.0×7.7 ms7.0 ms14.7 ms54.5841.7 MB0✓ yes
10,000json3.6 MB1.0×76.2 ms88.9 ms165.2 ms42.86317.3 MB0✓ yes
10,000compas_pb1.8 MB2.061×59.8 ms67.3 ms127.1 ms27.49212.3 MB0✓ yes
10,000json@py33.6 MB1.0×75.4 ms76.1 ms151.4 ms50.11917.3 MB0✓ yes

polylines

Round-trip time
1,000 elements
json
27.5 ms
compas_pb
14.0 ms
json@py3
26.6 ms
10,000 elements
json
280.5 ms
compas_pb
143.7 ms
json@py3
274.0 ms
Wire size
1,000 elements
json
554.0 KB
compas_pb
247.1 KB
json@py3
554.0 KB
10,000 elements
json
5.4 MB
compas_pb
2.4 MB
json@py3
5.4 MB
sizeformatwire sizevs JSONdumploadround-tripload MB/speak memmax errlossless
1,000json554.0 KB1.0×14.1 ms13.4 ms27.5 ms42.3642.7 MB0✓ yes
1,000compas_pb247.1 KB2.242×5.4 ms8.6 ms14.0 ms29.3682.0 MB0✓ yes
1,000json@py3554.0 KB1.0×13.4 ms13.3 ms26.6 ms42.7722.7 MB0✓ yes
10,000json5.4 MB1.0×129.5 ms151.0 ms280.5 ms37.57126.9 MB0✓ yes
10,000compas_pb2.4 MB2.243×56.4 ms87.3 ms143.7 ms28.98720.4 MB0✓ yes
10,000json@py35.4 MB1.0×131.2 ms142.8 ms274.0 ms39.72226.5 MB0✓ yes

projections

Round-trip time
1,000 elements
json
8.4 ms
compas_pb
7.1 ms
json@py3
8.3 ms
10,000 elements
json
84.4 ms
compas_pb
74.1 ms
json@py3
85.0 ms
Wire size
1,000 elements
json
188.1 KB
compas_pb
186.5 KB
json@py3
188.1 KB
10,000 elements
json
1.8 MB
compas_pb
1.8 MB
json@py3
1.8 MB
sizeformatwire sizevs JSONdumploadround-tripload MB/speak memmax errlossless
1,000json188.1 KB1.0×4.0 ms4.4 ms8.4 ms43.7091.2 MB0✓ yes
1,000compas_pb186.5 KB1.009×3.6 ms3.5 ms7.1 ms54.314901.2 KB0✓ yes
1,000json@py3188.1 KB1.0×4.0 ms4.2 ms8.3 ms45.6211.2 MB0✓ yes
10,000json1.8 MB1.0×39.1 ms45.3 ms84.4 ms42.56411.7 MB0✓ yes
10,000compas_pb1.8 MB1.009×37.3 ms36.8 ms74.1 ms51.9348.8 MB0✓ yes
10,000json@py31.8 MB1.0×40.8 ms44.2 ms85.0 ms43.55711.8 MB0✓ yes

quaternions

Round-trip time
1,000 elements
json
7.5 ms
compas_pb
5.0 ms
json@py3
7.4 ms
10,000 elements
json
75.9 ms
compas_pb
52.7 ms
json@py3
75.4 ms
Wire size
1,000 elements
json
185.4 KB
compas_pb
90.8 KB
json@py3
185.4 KB
10,000 elements
json
1.8 MB
compas_pb
908.2 KB
json@py3
1.8 MB
sizeformatwire sizevs JSONdumploadround-tripload MB/speak memmax errlossless
1,000json185.4 KB1.0×3.5 ms4.0 ms7.5 ms47.943584.7 KB0✓ yes
1,000compas_pb90.8 KB2.042×2.7 ms2.3 ms5.0 ms40.667272.6 KB0✓ yes
1,000json@py3185.4 KB1.0×3.5 ms3.9 ms7.4 ms49.09585.1 KB0✓ yes
10,000json1.8 MB1.0×34.9 ms41.1 ms75.9 ms46.2555.5 MB0✓ yes
10,000compas_pb908.2 KB2.043×28.4 ms24.3 ms52.7 ms38.3442.7 MB0✓ yes
10,000json@py31.8 MB1.0×34.9 ms40.5 ms75.4 ms46.8745.5 MB0✓ yes

reflections

Round-trip time
1,000 elements
json
8.2 ms
compas_pb
7.2 ms
json@py3
8.4 ms
10,000 elements
json
84.4 ms
compas_pb
74.2 ms
json@py3
85.7 ms
Wire size
1,000 elements
json
189.3 KB
compas_pb
186.5 KB
json@py3
189.3 KB
10,000 elements
json
1.8 MB
compas_pb
1.8 MB
json@py3
1.8 MB
sizeformatwire sizevs JSONdumploadround-tripload MB/speak memmax errlossless
1,000json189.3 KB1.0×4.0 ms4.2 ms8.2 ms46.1341.2 MB0✓ yes
1,000compas_pb186.5 KB1.015×3.7 ms3.5 ms7.2 ms53.963901.2 KB0✓ yes
1,000json@py3189.3 KB1.0×4.1 ms4.4 ms8.4 ms44.4771.2 MB0✓ yes
10,000json1.8 MB1.0×39.5 ms44.8 ms84.4 ms43.24211.8 MB0✓ yes
10,000compas_pb1.8 MB1.015×37.0 ms37.2 ms74.2 ms51.3578.8 MB0✓ yes
10,000json@py31.8 MB1.0×40.5 ms45.2 ms85.7 ms42.89111.8 MB0✓ yes

rotations

Round-trip time
1,000 elements
json
10.0 ms
compas_pb
7.2 ms
json@py3
9.5 ms
10,000 elements
json
103.9 ms
compas_pb
74.8 ms
json@py3
97.4 ms
Wire size
1,000 elements
json
233.2 KB
compas_pb
184.6 KB
json@py3
233.2 KB
10,000 elements
json
2.3 MB
compas_pb
1.8 MB
json@py3
2.3 MB
sizeformatwire sizevs JSONdumploadround-tripload MB/speak memmax errlossless
1,000json233.2 KB1.0×5.0 ms5.0 ms10.0 ms47.5761.2 MB0✓ yes
1,000compas_pb184.6 KB1.264×3.8 ms3.5 ms7.2 ms54.514901.2 KB0✓ yes
1,000json@py3233.2 KB1.0×4.9 ms4.7 ms9.5 ms51.1931.2 MB0✓ yes
10,000json2.3 MB1.0×50.3 ms53.6 ms103.9 ms44.57812.2 MB0✓ yes
10,000compas_pb1.8 MB1.264×38.4 ms36.4 ms74.8 ms51.9178.8 MB0✓ yes
10,000json@py32.3 MB1.0×48.0 ms49.4 ms97.4 ms48.31912.2 MB0✓ yes

scales

Round-trip time
1,000 elements
json
8.9 ms
compas_pb
7.0 ms
json@py3
9.1 ms
10,000 elements
json
93.3 ms
compas_pb
74.3 ms
json@py3
92.8 ms
Wire size
1,000 elements
json
211.0 KB
compas_pb
181.7 KB
json@py3
211.0 KB
10,000 elements
json
2.1 MB
compas_pb
1.8 MB
json@py3
2.1 MB
sizeformatwire sizevs JSONdumploadround-tripload MB/speak memmax errlossless
1,000json211.0 KB1.0×4.4 ms4.5 ms8.9 ms48.051.2 MB0✓ yes
1,000compas_pb181.7 KB1.162×3.5 ms3.4 ms7.0 ms53.931901.2 KB0✓ yes
1,000json@py3211.0 KB1.0×4.6 ms4.5 ms9.1 ms47.9151.2 MB0✓ yes
10,000json2.1 MB1.0×45.5 ms47.9 ms93.3 ms45.10212.0 MB0✓ yes
10,000compas_pb1.8 MB1.161×37.4 ms36.9 ms74.3 ms50.3868.8 MB0✓ yes
10,000json@py32.1 MB1.0×44.4 ms48.4 ms92.8 ms44.62112.0 MB0✓ yes

shears

Round-trip time
1,000 elements
json
8.2 ms
compas_pb
7.3 ms
json@py3
8.2 ms
10,000 elements
json
85.3 ms
compas_pb
74.5 ms
json@py3
84.1 ms
Wire size
1,000 elements
json
185.7 KB
compas_pb
181.7 KB
json@py3
185.7 KB
10,000 elements
json
1.8 MB
compas_pb
1.8 MB
json@py3
1.8 MB
sizeformatwire sizevs JSONdumploadround-tripload MB/speak memmax errlossless
1,000json185.7 KB1.0×4.0 ms4.2 ms8.2 ms45.5691.2 MB0✓ yes
1,000compas_pb181.7 KB1.022×3.8 ms3.5 ms7.3 ms52.955901.2 KB0✓ yes
1,000json@py3185.7 KB1.0×4.0 ms4.1 ms8.2 ms45.9051.2 MB0✓ yes
10,000json1.8 MB1.0×39.7 ms45.6 ms85.3 ms41.72711.7 MB0✓ yes
10,000compas_pb1.8 MB1.023×37.9 ms36.6 ms74.5 ms50.8588.8 MB0✓ yes
10,000json@py31.8 MB1.0×39.8 ms44.3 ms84.1 ms42.92311.7 MB0✓ yes

spheres

Round-trip time
1,000 elements
json
27.2 ms
compas_pb
16.3 ms
json@py3
27.9 ms
10,000 elements
json
279.9 ms
compas_pb
167.9 ms
json@py3
284.6 ms
Wire size
1,000 elements
json
231.7 KB
compas_pb
112.3 KB
json@py3
231.7 KB
10,000 elements
json
2.3 MB
compas_pb
1.1 MB
json@py3
2.3 MB
sizeformatwire sizevs JSONdumploadround-tripload MB/speak memmax errlossless
1,000json231.7 KB1.0×5.6 ms21.6 ms27.2 ms10.9881.4 MB0✓ yes
1,000compas_pb112.3 KB2.063×4.4 ms11.9 ms16.3 ms9.7021.1 MB0✓ yes
1,000json@py3231.7 KB1.0×5.8 ms22.1 ms27.9 ms10.7491.4 MB0✓ yes
10,000json2.3 MB1.0×57.3 ms222.7 ms279.9 ms10.65414.0 MB0✓ yes
10,000compas_pb1.1 MB2.063×45.1 ms122.8 ms167.9 ms9.36510.7 MB0✓ yes
10,000json@py32.3 MB1.0×59.3 ms225.3 ms284.6 ms10.53114.0 MB0✓ yes

toruses

Round-trip time
1,000 elements
json
28.0 ms
compas_pb
16.6 ms
json@py3
28.9 ms
10,000 elements
json
290.6 ms
compas_pb
174.0 ms
json@py3
294.2 ms
Wire size
1,000 elements
json
267.5 KB
compas_pb
120.1 KB
json@py3
267.5 KB
10,000 elements
json
2.6 MB
compas_pb
1.2 MB
json@py3
2.6 MB
sizeformatwire sizevs JSONdumploadround-tripload MB/speak memmax errlossless
1,000json267.5 KB1.0×6.1 ms22.0 ms28.0 ms12.4561.5 MB0✓ yes
1,000compas_pb120.1 KB2.227×4.5 ms12.1 ms16.6 ms10.1591.1 MB0✓ yes
1,000json@py3267.5 KB1.0×6.3 ms22.6 ms28.9 ms12.1111.5 MB0✓ yes
10,000json2.6 MB1.0×62.6 ms228.0 ms290.6 ms12.01314.8 MB0✓ yes
10,000compas_pb1.2 MB2.227×47.6 ms126.4 ms174.0 ms9.73211.1 MB0✓ yes
10,000json@py32.6 MB1.0×62.4 ms231.7 ms294.2 ms11.8214.8 MB0✓ yes

transformations

Round-trip time
1,000 elements
json
9.2 ms
compas_pb
7.0 ms
json@py3
9.1 ms
10,000 elements
json
93.5 ms
compas_pb
74.2 ms
json@py3
95.0 ms
Wire size
1,000 elements
json
219.8 KB
compas_pb
190.4 KB
json@py3
219.8 KB
10,000 elements
json
2.1 MB
compas_pb
1.9 MB
json@py3
2.1 MB
sizeformatwire sizevs JSONdumploadround-tripload MB/speak memmax errlossless
1,000json219.8 KB1.0×4.7 ms4.5 ms9.2 ms49.9461.2 MB0✓ yes
1,000compas_pb190.4 KB1.154×3.5 ms3.4 ms7.0 ms56.978901.2 KB0✓ yes
1,000json@py3219.8 KB1.0×4.7 ms4.4 ms9.1 ms50.6061.2 MB0✓ yes
10,000json2.1 MB1.0×45.7 ms47.8 ms93.5 ms47.11612.1 MB0✓ yes
10,000compas_pb1.9 MB1.154×37.8 ms36.4 ms74.2 ms53.6238.8 MB0✓ yes
10,000json@py32.1 MB1.0×46.3 ms48.7 ms95.0 ms46.20712.1 MB0✓ yes

translations

Round-trip time
1,000 elements
json
9.1 ms
compas_pb
6.3 ms
json@py3
9.2 ms
10,000 elements
json
95.9 ms
compas_pb
66.1 ms
json@py3
97.2 ms
Wire size
1,000 elements
json
216.9 KB
compas_pb
85.0 KB
json@py3
216.9 KB
10,000 elements
json
2.1 MB
compas_pb
849.6 KB
json@py3
2.1 MB
sizeformatwire sizevs JSONdumploadround-tripload MB/speak memmax errlossless
1,000json216.9 KB1.0×4.5 ms4.6 ms9.1 ms48.1481.2 MB0✓ yes
1,000compas_pb85.0 KB2.552×3.1 ms3.2 ms6.3 ms27.603596.4 KB0✓ yes
1,000json@py3216.9 KB1.0×4.6 ms4.6 ms9.2 ms48.0211.2 MB0✓ yes
10,000json2.1 MB1.0×46.1 ms49.9 ms95.9 ms44.52112.0 MB0✓ yes
10,000compas_pb849.6 KB2.552×32.6 ms33.5 ms66.1 ms25.9745.9 MB0✓ yes
10,000json@py32.1 MB1.0×46.2 ms51.0 ms97.2 ms43.56912.0 MB0✓ yes

vectors

Round-trip time
1,000 elements
json
6.7 ms
compas_pb
4.8 ms
json@py3
6.6 ms
10,000 elements
json
69.5 ms
compas_pb
50.7 ms
json@py3
67.6 ms
Wire size
1,000 elements
json
142.6 KB
compas_pb
78.1 KB
json@py3
142.6 KB
10,000 elements
json
1.4 MB
compas_pb
781.3 KB
json@py3
1.4 MB
sizeformatwire sizevs JSONdumploadround-tripload MB/speak memmax errlossless
1,000json142.6 KB1.0×3.1 ms3.5 ms6.7 ms41.52513.0 KB0✓ yes
1,000compas_pb78.1 KB1.826×2.6 ms2.2 ms4.8 ms36.427249.1 KB0✓ yes
1,000json@py3142.6 KB1.0×3.2 ms3.4 ms6.6 ms42.918519.1 KB0✓ yes
10,000json1.4 MB1.0×31.4 ms38.1 ms69.5 ms38.3444.9 MB0✓ yes
10,000compas_pb781.3 KB1.826×27.3 ms23.3 ms50.7 ms34.2732.4 MB0✓ yes
10,000json@py31.4 MB1.0×31.9 ms35.7 ms67.6 ms40.9084.9 MB0✓ yes