Sculpt dyntopo test BUILD UPDATED

I’m the developer for the dyntopo improvements branch (named, confusingly, temp_bmesh_multires).
I need some users to run a a benchmarking test for me.

You can download a temp_bmesh_multires build here:

Open this .blend file and follow the instructions in the script window:

CacheTester.blend (788.1 KB)

Then post the results in this thread.

Thanks!

5 Likes

Near instant crash on windows.

Thats the console when i open the file.

Summary

Read prefs: C:\Users\Scham\AppData\Roaming\Blender Foundation\Blender\3.0\config\userpref.blend
C:\Users\Scham\AppData\Roaming\Blender Foundation\Blender\3.0\scripts\addons\auto_eye_v03_2_addon\auto_eye.blend
The custom limb directory seems invalid: C:\Custom Limbs/
Traceback (most recent call last):
File “C:\Users\Scham\Downloads\blender-3.0.0-alpha+temp_bmesh_multires.d795144f5466-windows.amd64-release\blender-3.0.0-alpha+temp_bmesh_multires.d795144f5466-windows.amd64-release\3.0\python\lib\site-packages\numpy\core_init_.py”, line 22, in
from . import multiarray
File “C:\Users\Scham\Downloads\blender-3.0.0-alpha+temp_bmesh_multires.d795144f5466-windows.amd64-release\blender-3.0.0-alpha+temp_bmesh_multires.d795144f5466-windows.amd64-release\3.0\python\lib\site-packages\numpy\core\multiarray.py”, line 12, in
from . import overrides
File “C:\Users\Scham\Downloads\blender-3.0.0-alpha+temp_bmesh_multires.d795144f5466-windows.amd64-release\blender-3.0.0-alpha+temp_bmesh_multires.d795144f5466-windows.amd64-release\3.0\python\lib\site-packages\numpy\core\overrides.py”, line 7, in
from numpy.core._multiarray_umath import (
ImportError: DLL load failed while importing _multiarray_umath: Der Dateiname oder die Erweiterung ist zu lang.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File “C:\Users\Scham\Downloads\blender-3.0.0-alpha+temp_bmesh_multires.d795144f5466-windows.amd64-release\blender-3.0.0-alpha+temp_bmesh_multires.d795144f5466-windows.amd64-release\3.0\scripts\modules\addon_utils.py”, line 351, in enable
mod = import(module_name)
File “C:\Users\Scham\Downloads\blender-3.0.0-alpha+temp_bmesh_multires.d795144f5466-windows.amd64-release\blender-3.0.0-alpha+temp_bmesh_multires.d795144f5466-windows.amd64-release\3.0\scripts\addons\add_mesh_extra_objects_init_.py”, line 69, in
from . import add_mesh_3d_function_surface
File “C:\Users\Scham\Downloads\blender-3.0.0-alpha+temp_bmesh_multires.d795144f5466-windows.amd64-release\blender-3.0.0-alpha+temp_bmesh_multires.d795144f5466-windows.amd64-release\3.0\scripts\addons\add_mesh_extra_objects\add_mesh_3d_function_surface.py”, line 5, in
import numpy
File “C:\Users\Scham\Downloads\blender-3.0.0-alpha+temp_bmesh_multires.d795144f5466-windows.amd64-release\blender-3.0.0-alpha+temp_bmesh_multires.d795144f5466-windows.amd64-release\3.0\python\lib\site-packages\numpy_init_.py”, line 140, in
from . import core
File “C:\Users\Scham\Downloads\blender-3.0.0-alpha+temp_bmesh_multires.d795144f5466-windows.amd64-release\blender-3.0.0-alpha+temp_bmesh_multires.d795144f5466-windows.amd64-release\3.0\python\lib\site-packages\numpy\core_init_.py”, line 48, in
raise ImportError(msg)
ImportError:

IMPORTANT: PLEASE READ THIS FOR ADVICE ON HOW TO SOLVE THIS ISSUE!

Importing the numpy C-extensions failed. This error can happen for
many reasons, often due to issues with your setup or how NumPy was
installed.

We have compiled some common reasons and troubleshooting tips at:

https://numpy.org/devdocs/user/troubleshooting-importerror.html

Please note and check the following:

  • The Python version is: Python3.9 from “C:\Users\Scham\Downloads\blender-3.0.0-alpha+temp_bmesh_multires.d795144f5466-windows.amd64-release\blender-3.0.0-alpha+temp_bmesh_multires.d795144f5466-windows.amd64-release\3.0\python\bin\python.EXE”
  • The NumPy version is: “1.19.5”

and make sure that they are the versions you expect.
Please carefully study the documentation linked above for further help.

Original error was: DLL load failed while importing _multiarray_umath: Der Dateiname oder die Erweiterung ist zu lang.

Read blend: C:\Users\Scham\Downloads\CacheTester.blend

Looks like an error with an addon (Auto Eye?). You may need to disable it.

Loading factory settings is also not working.
No logs though

No crash log so i guess i cant help you here.

In the Task manager is a 100% spike before it crashes but thats not really helpful…

Same, crash after running script. This is my windows console before execution:

Hi, my results:

./blender --factory-startup
Read blend: /home/xxx/Downloads/CacheTester.blend
== Starting Test ==
building test mesh. . .totvert: 3, totface: 629856, tottri: 1259712
Writing: /tmp/CacheTester.crash.txt
Speicherzugriffsfehler (Speicherabzug geschrieben)

CacheTester.crash.txt (1.2 KB)

Cheers, mib

LittlePony crashes (Ubuntu Linux 20.04 – Celeron + Intel Graphics)

== Starting Test ==
building test mesh. . .totvert: 3, totface: 629856, tottri: 1259712
Writing: /tmp/CacheTester.crash.txt
fish: './blender' terminated by signal SIGSEGV (Adressbereichsfehler)

CacheTester.crash.txt (1.2 KB)

LuckDragon crashes (Ubuntu 20.04 – AMD Ryzen based, RTX 2060s)

== Starting Test ==
building test mesh. . .totvert: 3, totface: 629856, tottri: 1259712
Writing: /tmp/CacheTester.crash.txt
fish: “./blender” terminated by signal SIGSEGV (Address boundary error)

CacheTester.crash.txt (1.2 KB)

Hi Joe,
First thanks for the work you are putting on this front, I greatly appreciate it :+1:
After running the script on Windows 10 Nvidia GTX 550ti, Blender crashed, here is the log file →
CacheTester.crash.txt (14.8 KB)

I’ve updated the build links with a fresh build that should fix it.

1 Like

It looks that pure data-oriented approach is the fastest.
AMD Threadripper 3970x 4.0GHz, 128GB 3200 DDR4 RAM.

 == Starting Test ==
 building test mesh. . .
 AXIS: 0
 AXIS: 1
 AXIS: 2
 AXIS: 0
 AXIS: 1
 AXIS: 2
 totvert: 633740, totface: 629856, tottri: 1259712
     bmesh mem size: 380.41mb 312.77mb
 meshtest2 mem size: 279.38mb
 = BMesh random order
   time: 1.22396, 0 of 20
   time: 1.22396, 1 of 20
   time: 1.21996, 2 of 20
   time: 1.21996, 3 of 20
   time: 1.22396, 4 of 20
   time: 1.22397, 5 of 20
   time: 1.22396, 6 of 20
   time: 1.23197, 7 of 20
   time: 1.21997, 8 of 20
   time: 1.22396, 9 of 20
   time: 1.22397, 10 of 20
   time: 1.23197, 11 of 20
   time: 1.22797, 12 of 20
   time: 1.21597, 13 of 20
   time: 1.21597, 14 of 20
   time: 1.21197, 15 of 20
   time: 1.21597, 16 of 20
   time: 1.21597, 17 of 20
   time: 1.22397, 18 of 20
   time: 1.22397, 19 of 20
 time: 1.22210
 leaf_limit: 7
 v 633740 633740
 e 1263600 1263600
 l 2519424 2519424
 f 629856 629856
 roots: 118702
 = BMesh vertex cluster order
   time: 1.04398, 0 of 20
   time: 1.03997, 1 of 20
   time: 1.03997, 2 of 20
   time: 1.03998, 3 of 20
   time: 1.03998, 4 of 20
   time: 1.03998, 5 of 20
   time: 1.04398, 6 of 20
   time: 1.03998, 7 of 20
   time: 1.03998, 8 of 20
   time: 1.03998, 9 of 20
   time: 1.03998, 10 of 20
   time: 1.03998, 11 of 20
   time: 1.03998, 12 of 20
   time: 1.03998, 13 of 20
   time: 1.03998, 14 of 20
   time: 1.03998, 15 of 20
   time: 1.03998, 16 of 20
   time: 1.04798, 17 of 20
   time: 1.03998, 18 of 20
   time: 1.03998, 19 of 20
 time: 1.04078
 = Pure data-oriented (struct of arrays)
   time: 0.72399, 1 of 20
   time: 0.72398, 2 of 20
   time: 0.73999, 3 of 20
   time: 0.73199, 4 of 20
   time: 0.73199, 5 of 20
   time: 0.72799, 6 of 20
   time: 0.73199, 7 of 20
   time: 0.72799, 8 of 20
   time: 0.73199, 9 of 20
   time: 0.73599, 10 of 20
   time: 0.73199, 11 of 20
   time: 0.73199, 12 of 20
   time: 0.74799, 13 of 20
   time: 0.73999, 14 of 20
   time: 0.72399, 15 of 20
   time: 0.72399, 16 of 20
   time: 0.72799, 17 of 20
   time: 0.72399, 18 of 20
   time: 0.72399, 19 of 20
   time: 0.72799, 20 of 20
 time: 0.73065
 = Object-oriented but with integer indices instead of pointers
   time: 0.94398, 0 of 20
   time: 0.94398, 1 of 20
   time: 0.94398, 2 of 20
   time: 0.94398, 3 of 20
   time: 0.94398, 4 of 20
   time: 0.94398, 5 of 20
   time: 0.94798, 6 of 20
   time: 0.94398, 7 of 20
   time: 0.94398, 8 of 20
   time: 0.94399, 9 of 20
   time: 0.94398, 10 of 20
   time: 0.93999, 11 of 20
   time: 0.94398, 12 of 20
   time: 0.94399, 13 of 20
   time: 0.94399, 14 of 20
   time: 0.94399, 15 of 20
   time: 0.94399, 16 of 20
   time: 0.94399, 17 of 20
   time: 0.94399, 18 of 20
   time: 0.94799, 19 of 20
 time: 0.94425
 
 == Times ==
   random order : 1.22
   vertex cluser : 1.04 (17.42% improvement)
   data-oriented : 0.73 (67.26% improvement)
   integer indices : 0.94 (29.43% improvement)
 == Test Finished ==

Neat that worked.
I have 32 gb of ram and not a super nice cpu. (amd 1600x)

Summary

== Starting Test ==
building test mesh. . .
AXIS: 0
AXIS: 1
AXIS: 2
AXIS: 0
AXIS: 1
AXIS: 2
totvert: 633740, totface: 629856, tottri: 1259712
bmesh mem size: 380.41mb 312.77mb
meshtest2 mem size: 279.38mb
= BMesh random order
time: 1.50530, 0 of 20
time: 1.49766, 1 of 20
time: 1.49842, 2 of 20
time: 1.50489, 3 of 20
time: 1.48325, 4 of 20
time: 1.48566, 5 of 20
time: 1.51962, 6 of 20
time: 1.49529, 7 of 20
time: 1.47912, 8 of 20
time: 1.50877, 9 of 20
time: 1.50052, 10 of 20
time: 1.52058, 11 of 20
time: 1.48505, 12 of 20
time: 1.50505, 13 of 20
time: 1.50798, 14 of 20
time: 1.47731, 15 of 20
time: 1.46086, 16 of 20
time: 1.47676, 17 of 20
time: 1.49979, 18 of 20
time: 1.50099, 19 of 20
time: 1.49489
leaf_limit: 7
v 633740 633740
e 1263600 1263600
l 2519424 2519424
f 629856 629856
roots: 118702
= BMesh vertex cluster order
time: 1.45067, 0 of 20
time: 1.42245, 1 of 20
time: 1.47822, 2 of 20
time: 1.50503, 3 of 20
time: 1.44610, 4 of 20
time: 1.48481, 5 of 20
time: 1.43214, 6 of 20
time: 1.42805, 7 of 20
time: 1.45326, 8 of 20
time: 1.45151, 9 of 20
time: 1.48387, 10 of 20
time: 1.43959, 11 of 20
time: 1.58890, 12 of 20
time: 1.52680, 13 of 20
time: 1.46711, 14 of 20
time: 1.41922, 15 of 20
time: 1.41998, 16 of 20
time: 1.42216, 17 of 20
time: 1.43666, 18 of 20
time: 1.45366, 19 of 20
time: 1.46051
= Pure data-oriented (struct of arrays)
time: 1.03764, 1 of 20
time: 1.03605, 2 of 20
time: 1.03156, 3 of 20
time: 0.99312, 4 of 20
time: 1.01292, 5 of 20
time: 1.01904, 6 of 20
time: 1.04055, 7 of 20
time: 1.02072, 8 of 20
time: 1.04417, 9 of 20
time: 1.04544, 10 of 20
time: 1.03657, 11 of 20
time: 1.04151, 12 of 20
time: 1.03127, 13 of 20
time: 1.00992, 14 of 20
time: 1.13097, 15 of 20
time: 1.11403, 16 of 20
time: 1.08009, 17 of 20
time: 1.39203, 18 of 20
time: 1.19028, 19 of 20
time: 1.27940, 20 of 20
time: 1.09840
= Object-oriented but with integer indices instead of pointers
time: 1.26988, 0 of 20
time: 1.17438, 1 of 20
time: 1.18704, 2 of 20
time: 1.20734, 3 of 20
time: 1.15573, 4 of 20
time: 1.13979, 5 of 20
time: 1.16261, 6 of 20
time: 1.13967, 7 of 20
time: 1.18301, 8 of 20
time: 1.24313, 9 of 20
time: 1.18169, 10 of 20
time: 1.25359, 11 of 20
time: 1.26856, 12 of 20
time: 1.17490, 13 of 20
time: 1.18509, 14 of 20
time: 1.13539, 15 of 20
time: 1.16335, 16 of 20
time: 1.15207, 17 of 20
time: 1.10994, 18 of 20
time: 1.11720, 19 of 20
time: 1.17400

== Times ==
random order : 1.49
vertex cluser : 1.46 (2.35% improvement)
data-oriented : 1.10 (36.10% improvement)
integer indices : 1.17 (27.33% improvement)
== Test Finished ==

Nice, this is the first version I tried (Linux) that didn’t crash immediately after clicking on “Dyntopo” :wink:
Here are my results from a laptop (Intel(R) Core™ i7-10875H CPU @ 2.30GHz):

== Starting Test ==
building test mesh. . .
AXIS: 0
AXIS: 1
AXIS: 2
AXIS: 0
AXIS: 1
AXIS: 2
totvert: 633740, totface: 629856, tottri: 1259712
    bmesh mem size: 380.41mb 312.77mb
meshtest2 mem size: 279.38mb
= BMesh random order
  time: 1.28988, 0 of 20
  time: 1.29160, 1 of 20
  time: 1.28859, 2 of 20
  time: 1.29942, 3 of 20
  time: 1.29343, 4 of 20
  time: 1.29829, 5 of 20
  time: 1.29228, 6 of 20
  time: 1.29119, 7 of 20
  time: 1.29246, 8 of 20
  time: 1.28370, 9 of 20
  time: 1.28627, 10 of 20
  time: 1.28845, 11 of 20
  time: 1.28765, 12 of 20
  time: 1.28858, 13 of 20
  time: 1.33883, 14 of 20
  time: 1.29064, 15 of 20
  time: 1.29258, 16 of 20
  time: 1.29134, 17 of 20
  time: 1.28635, 18 of 20
  time: 1.28891, 19 of 20
time: 1.29317
leaf_limit: 7
v 633740 633740
e 1263600 1263600
l 2519424 2519424
f 629856 629856
roots: 118702
= BMesh vertex cluster order
  time: 1.13598, 0 of 20
  time: 1.13269, 1 of 20
  time: 1.13477, 2 of 20
  time: 1.13122, 3 of 20
  time: 1.12972, 4 of 20
  time: 1.13841, 5 of 20
  time: 1.13010, 6 of 20
  time: 1.12968, 7 of 20
  time: 1.13154, 8 of 20
  time: 1.13039, 9 of 20
  time: 1.12728, 10 of 20
  time: 1.13158, 11 of 20
  time: 1.13023, 12 of 20
  time: 1.13095, 13 of 20
  time: 1.13125, 14 of 20
  time: 1.13241, 15 of 20
  time: 1.14806, 16 of 20
  time: 1.14225, 17 of 20
  time: 1.13923, 18 of 20
  time: 1.13664, 19 of 20
time: 1.13400
= Pure data-oriented (struct of arrays)
  time: 0.75139, 1 of 20
  time: 0.74649, 2 of 20
  time: 0.75240, 3 of 20
  time: 0.74706, 4 of 20
  time: 0.74734, 5 of 20
  time: 0.74485, 6 of 20
  time: 0.74785, 7 of 20
  time: 0.77055, 8 of 20
  time: 0.75842, 9 of 20
  time: 0.75968, 10 of 20
  time: 0.76200, 11 of 20
  time: 0.75945, 12 of 20
  time: 0.75349, 13 of 20
  time: 0.75996, 14 of 20
  time: 0.74449, 15 of 20
  time: 0.74891, 16 of 20
  time: 0.75170, 17 of 20
  time: 0.74872, 18 of 20
  time: 0.75018, 19 of 20
  time: 0.74748, 20 of 20
time: 0.75385
= Object-oriented but with integer indices instead of pointers
  time: 0.86938, 0 of 20
  time: 0.86559, 1 of 20
  time: 0.87011, 2 of 20
  time: 0.87330, 3 of 20
  time: 0.86736, 4 of 20
  time: 0.86842, 5 of 20
  time: 0.86751, 6 of 20
  time: 0.86766, 7 of 20
  time: 0.86320, 8 of 20
  time: 0.86569, 9 of 20
  time: 0.86647, 10 of 20
  time: 0.86685, 11 of 20
  time: 0.95618, 12 of 20
  time: 0.91808, 13 of 20
  time: 0.91308, 14 of 20
  time: 0.90497, 15 of 20
  time: 0.90364, 16 of 20
  time: 0.90662, 17 of 20
  time: 0.89900, 18 of 20
  time: 0.90279, 19 of 20
time: 0.89134

== Times ==
  random order : 1.29
  vertex cluser : 1.13 (14.04% improvement)
  data-oriented : 0.75 (71.54% improvement)
  integer indices : 0.89 (45.08% improvement)
== Test Finished ==

16 gb of 1600mhz ddr3, i5 4590 @ 3.3 ghz, gtx 1060 6 gb

== Starting Test ==
building test mesh. . .
AXIS: 0
AXIS: 1
AXIS: 2
AXIS: 0
AXIS: 1
AXIS: 2
totvert: 633740, totface: 629856, tottri: 1259712
    bmesh mem size: 380.41mb 312.77mb
meshtest2 mem size: 279.38mb
= BMesh random order
  time: 1.57703, 0 of 20
  time: 1.57864, 1 of 20
  time: 1.57311, 2 of 20
  time: 1.57832, 3 of 20
  time: 1.57306, 4 of 20
  time: 1.57895, 5 of 20
  time: 1.57458, 6 of 20
  time: 1.57584, 7 of 20
  time: 1.57561, 8 of 20
  time: 1.58027, 9 of 20
  time: 1.58288, 10 of 20
  time: 1.57229, 11 of 20
  time: 1.56931, 12 of 20
  time: 1.57289, 13 of 20
  time: 1.57156, 14 of 20
  time: 1.57583, 15 of 20
  time: 1.58140, 16 of 20
  time: 1.57616, 17 of 20
  time: 1.58047, 18 of 20
  time: 1.58185, 19 of 20
time: 1.57666
leaf_limit: 7
v 633740 633740
e 1263600 1263600
l 2519424 2519424
f 629856 629856
roots: 118702
= BMesh vertex cluster order
  time: 1.41107, 0 of 20
  time: 1.40058, 1 of 20
  time: 1.40425, 2 of 20
  time: 1.40685, 3 of 20
  time: 1.40295, 4 of 20
  time: 1.40606, 5 of 20
  time: 1.39979, 6 of 20
  time: 1.40586, 7 of 20
  time: 1.40374, 8 of 20
  time: 1.40412, 9 of 20
  time: 1.40093, 10 of 20
  time: 1.40596, 11 of 20
  time: 1.40383, 12 of 20
  time: 1.40444, 13 of 20
  time: 1.40334, 14 of 20
  time: 1.40964, 15 of 20
  time: 1.40130, 16 of 20
  time: 1.40638, 17 of 20
  time: 1.40279, 18 of 20
  time: 1.40101, 19 of 20
time: 1.40395
= Pure data-oriented (struct of arrays)
  time: 1.08951, 1 of 20
  time: 1.09520, 2 of 20
  time: 1.08871, 3 of 20
  time: 1.08291, 4 of 20
  time: 1.08938, 5 of 20
  time: 1.09161, 6 of 20
  time: 1.09100, 7 of 20
  time: 1.08494, 8 of 20
  time: 1.08864, 9 of 20
  time: 1.08837, 10 of 20
  time: 1.08744, 11 of 20
  time: 1.09930, 12 of 20
  time: 1.08669, 13 of 20
  time: 1.08972, 14 of 20
  time: 1.08825, 15 of 20
  time: 1.08691, 16 of 20
  time: 1.09069, 17 of 20
  time: 1.08981, 18 of 20
  time: 1.09356, 19 of 20
  time: 1.08698, 20 of 20
time: 1.08959
= Object-oriented but with integer indices instead of pointers
  time: 1.10636, 0 of 20
  time: 1.10603, 1 of 20
  time: 1.10660, 2 of 20
  time: 1.11687, 3 of 20
  time: 1.11656, 4 of 20
  time: 1.10727, 5 of 20
  time: 1.10678, 6 of 20
  time: 1.10590, 7 of 20
  time: 1.10388, 8 of 20
  time: 1.10669, 9 of 20
  time: 1.11278, 10 of 20
  time: 1.10462, 11 of 20
  time: 1.10882, 12 of 20
  time: 1.10166, 13 of 20
  time: 1.10579, 14 of 20
  time: 1.11290, 15 of 20
  time: 1.09848, 16 of 20
  time: 1.10807, 17 of 20
  time: 1.11138, 18 of 20
  time: 1.11072, 19 of 20
time: 1.10705

== Times ==
  random order : 1.58
  vertex cluser : 1.40 (12.30% improvement)
  data-oriented : 1.09 (44.70% improvement)
  integer indices : 1.11 (42.42% improvement)
== Test Finished ==

Hi.
Linux, i7-3770
hash: 9b8c82e2ed59

== Starting Test ==
building test mesh. . .
AXIS: 0
AXIS: 1
AXIS: 2
AXIS: 0
AXIS: 1
AXIS: 2
totvert: 633740, totface: 629856, tottri: 1259712
    bmesh mem size: 380.41mb 312.77mb
meshtest2 mem size: 279.38mb
= BMesh random order
  time: 1.60465, 0 of 20
  time: 1.56336, 1 of 20
  time: 1.56345, 2 of 20
  time: 1.57127, 3 of 20
  time: 1.58018, 4 of 20
  time: 1.57154, 5 of 20
  time: 1.56104, 6 of 20
  time: 1.54567, 7 of 20
  time: 1.51532, 8 of 20
  time: 1.52632, 9 of 20
  time: 1.53256, 10 of 20
  time: 1.54073, 11 of 20
  time: 1.51684, 12 of 20
  time: 1.52010, 13 of 20
  time: 1.54039, 14 of 20
  time: 1.52458, 15 of 20
  time: 1.50774, 16 of 20
  time: 1.50993, 17 of 20
  time: 1.50623, 18 of 20
  time: 1.51472, 19 of 20
time: 1.52891
leaf_limit: 7
v 633740 633740
e 1263600 1263600
l 2519424 2519424
f 629856 629856
roots: 118702
= BMesh vertex cluster order
  time: 1.34386, 0 of 20
  time: 1.35535, 1 of 20
  time: 1.35715, 2 of 20
  time: 1.33207, 3 of 20
  time: 1.34792, 4 of 20
  time: 1.34967, 5 of 20
  time: 1.36409, 6 of 20
  time: 1.35972, 7 of 20
  time: 1.35622, 8 of 20
  time: 1.33572, 9 of 20
  time: 1.35936, 10 of 20
  time: 1.36040, 11 of 20
  time: 1.33970, 12 of 20
  time: 1.36464, 13 of 20
  time: 1.35095, 14 of 20
  time: 1.33761, 15 of 20
  time: 1.34289, 16 of 20
  time: 1.41376, 17 of 20
  time: 1.35529, 18 of 20
  time: 1.34596, 19 of 20
time: 1.35573
= Pure data-oriented (struct of arrays)
  time: 1.08204, 1 of 20
  time: 1.09732, 2 of 20
  time: 1.07691, 3 of 20
  time: 1.07951, 4 of 20
  time: 1.06611, 5 of 20
  time: 1.07446, 6 of 20
  time: 1.07453, 7 of 20
  time: 1.09164, 8 of 20
  time: 1.07740, 9 of 20
  time: 1.08558, 10 of 20
  time: 1.07382, 11 of 20
  time: 1.09188, 12 of 20
  time: 1.07175, 13 of 20
  time: 1.08699, 14 of 20
  time: 1.07890, 15 of 20
  time: 1.08518, 16 of 20
  time: 1.07682, 17 of 20
  time: 1.07174, 18 of 20
  time: 1.08624, 19 of 20
  time: 1.06804, 20 of 20
time: 1.07966
= Object-oriented but with integer indices instead of pointers
  time: 1.10221, 0 of 20
  time: 1.06855, 1 of 20
  time: 1.08205, 2 of 20
  time: 1.08130, 3 of 20
  time: 1.07236, 4 of 20
  time: 1.08666, 5 of 20
  time: 1.07480, 6 of 20
  time: 1.08193, 7 of 20
  time: 1.06099, 8 of 20
  time: 1.07053, 9 of 20
  time: 1.05832, 10 of 20
  time: 1.07384, 11 of 20
  time: 1.05962, 12 of 20
  time: 1.06973, 13 of 20
  time: 1.05525, 14 of 20
  time: 1.07173, 15 of 20
  time: 1.06801, 16 of 20
  time: 1.07475, 17 of 20
  time: 1.07988, 18 of 20
  time: 1.06130, 19 of 20
time: 1.06982

== Times ==
  random order : 1.53
  vertex cluser : 1.36 (12.77% improvement)
  data-oriented : 1.08 (41.61% improvement)
  integer indices : 1.07 (42.91% improvement)
== Test Finished ==

Thanks everyone!

1 Like

Here are my results:
Windows 10 - 16GB Ram - hash: 9b8c82e2ed59

== Starting Test ==
building test mesh. . .
AXIS: 0
AXIS: 1
AXIS: 2
AXIS: 0
AXIS: 1
AXIS: 2
totvert: 633740, totface: 629856, tottri: 1259712
    bmesh mem size: 380.41mb 312.77mb
meshtest2 mem size: 279.38mb
= BMesh random order
  time: 1.53189, 0 of 20
  time: 1.55821, 1 of 20
  time: 1.57300, 2 of 20
  time: 1.56592, 3 of 20
  time: 1.57265, 4 of 20
  time: 1.55777, 5 of 20
  time: 1.56492, 6 of 20
  time: 1.57738, 7 of 20
  time: 1.56501, 8 of 20
  time: 1.56009, 9 of 20
  time: 1.53720, 10 of 20
  time: 1.56505, 11 of 20
  time: 1.57033, 12 of 20
  time: 1.52937, 13 of 20
  time: 1.56933, 14 of 20
  time: 1.56582, 15 of 20
  time: 1.55859, 16 of 20
  time: 1.55015, 17 of 20
  time: 1.56564, 18 of 20
  time: 1.55468, 19 of 20
time: 1.55942
leaf_limit: 7
v 633740 633740
e 1263600 1263600
l 2519424 2519424
f 629856 629856
roots: 118702
= BMesh vertex cluster order
  time: 1.40220, 0 of 20
  time: 1.38037, 1 of 20
  time: 1.40263, 2 of 20
  time: 1.37888, 3 of 20
  time: 1.36566, 4 of 20
  time: 1.39504, 5 of 20
  time: 1.35926, 6 of 20
  time: 1.39372, 7 of 20
  time: 1.37997, 8 of 20
  time: 1.40770, 9 of 20
  time: 1.39070, 10 of 20
  time: 1.37317, 11 of 20
  time: 1.39204, 12 of 20
  time: 1.37366, 13 of 20
  time: 1.39370, 14 of 20
  time: 1.38085, 15 of 20
  time: 1.41082, 16 of 20
  time: 1.39332, 17 of 20
  time: 1.38849, 18 of 20
  time: 1.36461, 19 of 20
time: 1.38647
= Pure data-oriented (struct of arrays)
  time: 1.08477, 1 of 20
  time: 1.06226, 2 of 20
  time: 1.08339, 3 of 20
  time: 1.08398, 4 of 20
  time: 1.07366, 5 of 20
  time: 1.04816, 6 of 20
  time: 1.08048, 7 of 20
  time: 1.07023, 8 of 20
  time: 1.05383, 9 of 20
  time: 1.10287, 10 of 20
  time: 1.12751, 11 of 20
  time: 1.11833, 12 of 20
  time: 1.09834, 13 of 20
  time: 1.12743, 14 of 20
  time: 1.10335, 15 of 20
  time: 1.09030, 16 of 20
  time: 1.12600, 17 of 20
  time: 1.07654, 18 of 20
  time: 1.11061, 19 of 20
  time: 1.06395, 20 of 20
time: 1.09320
= Object-oriented but with integer indices instead of pointers
  time: 1.08482, 0 of 20
  time: 1.08999, 1 of 20
  time: 1.12907, 2 of 20
  time: 1.12262, 3 of 20
  time: 1.09666, 4 of 20
  time: 1.08809, 5 of 20
  time: 1.09378, 6 of 20
  time: 1.09490, 7 of 20
  time: 1.10169, 8 of 20
  time: 1.07994, 9 of 20
  time: 1.08722, 10 of 20
  time: 1.10990, 11 of 20
  time: 1.12654, 12 of 20
  time: 1.09953, 13 of 20
  time: 1.08699, 14 of 20
  time: 1.09944, 15 of 20
  time: 1.09256, 16 of 20
  time: 1.09733, 17 of 20
  time: 1.11031, 18 of 20
  time: 1.08728, 19 of 20
time: 1.09703

== Times ==
  random order : 1.56
  vertex cluser : 1.39 (12.47% improvement)
  data-oriented : 1.09 (42.65% improvement)
  integer indices : 1.10 (42.15% improvement)
== Test Finished ==

Windows 10 - 32 GB RAM, i7-9750H, RTX2060
hash: 9b8c82e2ed59

== Starting Test ==
building test mesh. . .
AXIS: 0
AXIS: 1
AXIS: 2
AXIS: 0
AXIS: 1
AXIS: 2
totvert: 633740, totface: 629856, tottri: 1259712
    bmesh mem size: 380.41mb 312.77mb
meshtest2 mem size: 279.38mb
= BMesh random order
  time: 1.22015, 0 of 20
  time: 1.20704, 1 of 20
  time: 1.24388, 2 of 20
  time: 1.21526, 3 of 20
  time: 1.21310, 4 of 20
  time: 1.21201, 5 of 20
  time: 1.20910, 6 of 20
  time: 1.21243, 7 of 20
  time: 1.22639, 8 of 20
  time: 1.23237, 9 of 20
  time: 1.21039, 10 of 20
  time: 1.23325, 11 of 20
  time: 1.23698, 12 of 20
  time: 1.24017, 13 of 20
  time: 1.23563, 14 of 20
  time: 1.23502, 15 of 20
  time: 1.23449, 16 of 20
  time: 1.23319, 17 of 20
  time: 1.20439, 18 of 20
  time: 1.20867, 19 of 20
time: 1.22430
leaf_limit: 7
v 633740 633740
e 1263600 1263600
l 2519424 2519424
f 629856 629856
roots: 118702
= BMesh vertex cluster order
  time: 1.07399, 0 of 20
  time: 1.07675, 1 of 20
  time: 1.07412, 2 of 20
  time: 1.09052, 3 of 20
  time: 1.06789, 4 of 20
  time: 1.06106, 5 of 20
  time: 1.06425, 6 of 20
  time: 1.06212, 7 of 20
  time: 1.05745, 8 of 20
  time: 1.06155, 9 of 20
  time: 1.06121, 10 of 20
  time: 1.06435, 11 of 20
  time: 1.05587, 12 of 20
  time: 1.05994, 13 of 20
  time: 1.05945, 14 of 20
  time: 1.06852, 15 of 20
  time: 1.06095, 16 of 20
  time: 1.05736, 17 of 20
  time: 1.07886, 18 of 20
  time: 1.08920, 19 of 20
time: 1.06414
= Pure data-oriented (struct of arrays)
  time: 0.75274, 1 of 20
  time: 0.75173, 2 of 20
  time: 0.74896, 3 of 20
  time: 0.75788, 4 of 20
  time: 0.74637, 5 of 20
  time: 0.74748, 6 of 20
  time: 0.74579, 7 of 20
  time: 0.74969, 8 of 20
  time: 0.74627, 9 of 20
  time: 0.73936, 10 of 20
  time: 0.74328, 11 of 20
  time: 0.74439, 12 of 20
  time: 0.74972, 13 of 20
  time: 0.74536, 14 of 20
  time: 0.74604, 15 of 20
  time: 0.74400, 16 of 20
  time: 0.74500, 17 of 20
  time: 0.75515, 18 of 20
  time: 0.75244, 19 of 20
  time: 0.75415, 20 of 20
time: 0.74721
= Object-oriented but with integer indices instead of pointers
  time: 0.80655, 0 of 20
  time: 0.81192, 1 of 20
  time: 0.81645, 2 of 20
  time: 0.82208, 3 of 20
  time: 0.81997, 4 of 20
  time: 0.82351, 5 of 20
  time: 0.82955, 6 of 20
  time: 0.82782, 7 of 20
  time: 0.82830, 8 of 20
  time: 0.82291, 9 of 20
  time: 0.82320, 10 of 20
  time: 0.82486, 11 of 20
  time: 0.81217, 12 of 20
  time: 0.81051, 13 of 20
  time: 0.81010, 14 of 20
  time: 0.81210, 15 of 20
  time: 0.80896, 16 of 20
  time: 0.81342, 17 of 20
  time: 0.81051, 18 of 20
  time: 0.81246, 19 of 20
time: 0.81802

== Times ==
  random order : 1.22
  vertex cluser : 1.06 (15.05% improvement)
  data-oriented : 0.75 (63.85% improvement)
  integer indices : 0.82 (49.67% improvement)
== Test Finished ==
1 Like

Hellooooo :hugs: :stuck_out_tongue_winking_eye: !!!
Here we go again.

Macbook pro (2015) Intel “Core i7” processor (5557U)
16 GB 1866 MHz LPDDR3 SDRAM

== Starting Test ==
building test mesh. . .
AXIS: 0
AXIS: 1
AXIS: 2
AXIS: 0
AXIS: 1
AXIS: 2
totvert: 633740, totface: 629856, tottri: 1259712
    bmesh mem size: 380.41mb 312.77mb
meshtest2 mem size: 279.38mb
= BMesh random order
  time: 2.21305, 0 of 20
  time: 2.30522, 1 of 20
  time: 2.22904, 2 of 20
  time: 2.28651, 3 of 20
  time: 2.24177, 4 of 20
  time: 2.38543, 5 of 20
  time: 2.37077, 6 of 20
  time: 2.29939, 7 of 20
  time: 2.46513, 8 of 20
  time: 2.39832, 9 of 20
  time: 2.30042, 10 of 20
  time: 2.29802, 11 of 20
  time: 2.33915, 12 of 20
  time: 2.33279, 13 of 20
  time: 2.44455, 14 of 20
  time: 2.24127, 15 of 20
  time: 2.14880, 16 of 20
  time: 2.16094, 17 of 20
  time: 2.28678, 18 of 20
  time: 2.33353, 19 of 20
time: 2.32035
leaf_limit: 7
v 633740 633740
e 1263600 1263600
l 2519424 2519424
f 629856 629856
roots: 118702
= BMesh vertex cluster order
  time: 1.87147, 0 of 20
  time: 2.05728, 1 of 20
  time: 1.93573, 2 of 20
  time: 2.16282, 3 of 20
  time: 2.09952, 4 of 20
  time: 2.02714, 5 of 20
  time: 1.97899, 6 of 20
  time: 2.09406, 7 of 20
  time: 1.87446, 8 of 20
  time: 2.15503, 9 of 20
  time: 1.95787, 10 of 20
  time: 1.86924, 11 of 20
  time: 1.98557, 12 of 20
  time: 2.11494, 13 of 20
  time: 1.90497, 14 of 20
  time: 1.98730, 15 of 20
  time: 2.04065, 16 of 20
  time: 1.92356, 17 of 20
  time: 2.02441, 18 of 20
  time: 1.92662, 19 of 20
time: 1.99099
= Pure data-oriented (struct of arrays)
  time: 1.86859, 1 of 20
  time: 1.81773, 2 of 20
  time: 1.88091, 3 of 20
  time: 1.88262, 4 of 20
  time: 1.87518, 5 of 20
  time: 1.81547, 6 of 20
  time: 1.83418, 7 of 20
  time: 1.86538, 8 of 20
  time: 1.95968, 9 of 20
  time: 1.76968, 10 of 20
  time: 1.88154, 11 of 20
  time: 1.82138, 12 of 20
  time: 1.89242, 13 of 20
  time: 1.78991, 14 of 20
  time: 1.74777, 15 of 20
  time: 1.92590, 16 of 20
  time: 1.96905, 17 of 20
  time: 1.97458, 18 of 20
  time: 1.88858, 19 of 20
  time: 1.97974, 20 of 20
time: 1.87435
= Object-oriented but with integer indices instead of pointers
  time: 1.48361, 0 of 20
  time: 1.57646, 1 of 20
  time: 1.42904, 2 of 20
  time: 1.41120, 3 of 20
  time: 1.59403, 4 of 20
  time: 1.42353, 5 of 20
  time: 1.42407, 6 of 20
  time: 1.44203, 7 of 20
  time: 1.59419, 8 of 20
  time: 1.47164, 9 of 20
  time: 1.53537, 10 of 20
  time: 1.46823, 11 of 20
  time: 1.54050, 12 of 20
  time: 1.53581, 13 of 20
  time: 1.53507, 14 of 20
  time: 1.46817, 15 of 20
  time: 1.42520, 16 of 20
  time: 1.62785, 17 of 20
  time: 1.46832, 18 of 20
  time: 1.51107, 19 of 20
time: 1.49807

== Times ==
  random order : 2.32
  vertex cluser : 1.99 (16.54% improvement)
  data-oriented : 1.87 (23.80% improvement)
  integer indices : 1.50 (54.89% improvement)
== Test Finished ==
1 Like

Hi here’s mine.

Read prefs: C:\Users\User\AppData\Roaming\Blender Foundation\Blender\3.0\config\userpref.blend
drop file D:\Downloads\CacheTester.blend
Read blend: D:\Downloads\CacheTester.blend
== Starting Test ==
building test mesh. . .
AXIS: 0
AXIS: 1
AXIS: 2
AXIS: 0
AXIS: 1
AXIS: 2
totvert: 633740, totface: 629856, tottri: 1259712
    bmesh mem size: 380.41mb 312.77mb
meshtest2 mem size: 279.38mb
= BMesh random order
  time: 0.85695, 0 of 20
  time: 0.83745, 1 of 20
  time: 0.84307, 2 of 20
  time: 0.82983, 3 of 20
  time: 0.83972, 4 of 20
  time: 0.84463, 5 of 20
  time: 0.83397, 6 of 20
  time: 0.83954, 7 of 20
  time: 0.83172, 8 of 20
  time: 0.83695, 9 of 20
  time: 0.84025, 10 of 20
  time: 0.85984, 11 of 20
  time: 0.92368, 12 of 20
  time: 0.86962, 13 of 20
  time: 0.84609, 14 of 20
  time: 0.87180, 15 of 20
  time: 0.86508, 16 of 20
  time: 0.87008, 17 of 20
  time: 0.86453, 18 of 20
  time: 0.86670, 19 of 20
time: 0.85763
leaf_limit: 7
v 633740 633740
e 1263600 1263600
l 2519424 2519424
f 629856 629856
roots: 118702
= BMesh vertex cluster order
  time: 0.76987, 0 of 20
  time: 0.76236, 1 of 20
  time: 0.76196, 2 of 20
  time: 0.76255, 3 of 20
  time: 0.76785, 4 of 20
  time: 0.76181, 5 of 20
  time: 0.76999, 6 of 20
  time: 0.76553, 7 of 20
  time: 0.76436, 8 of 20
  time: 0.76443, 9 of 20
  time: 0.76374, 10 of 20
  time: 0.76340, 11 of 20
  time: 0.76635, 12 of 20
  time: 0.75994, 13 of 20
  time: 0.76245, 14 of 20
  time: 0.76818, 15 of 20
  time: 0.76240, 16 of 20
  time: 0.76753, 17 of 20
  time: 0.76479, 18 of 20
  time: 0.76663, 19 of 20
time: 0.76477
= Pure data-oriented (struct of arrays)
  time: 0.30536, 1 of 20
  time: 0.28817, 2 of 20
  time: 0.27901, 3 of 20
  time: 0.27682, 4 of 20
  time: 0.28667, 5 of 20
  time: 0.27523, 6 of 20
  time: 0.28634, 7 of 20
  time: 0.29022, 8 of 20
  time: 0.29605, 9 of 20
  time: 0.28001, 10 of 20
  time: 0.27545, 11 of 20
  time: 0.28627, 12 of 20
  time: 0.27628, 13 of 20
  time: 0.28336, 14 of 20
  time: 0.28453, 15 of 20
  time: 0.30450, 16 of 20
  time: 0.28003, 17 of 20
  time: 0.27341, 18 of 20
  time: 0.28743, 19 of 20
  time: 0.27451, 20 of 20
time: 0.28357
= Object-oriented but with integer indices instead of pointers
  time: 0.56751, 0 of 20
  time: 0.56730, 1 of 20
  time: 0.56693, 2 of 20
  time: 0.56502, 3 of 20
  time: 0.56945, 4 of 20
  time: 0.56906, 5 of 20
  time: 0.56197, 6 of 20
  time: 0.56671, 7 of 20
  time: 0.56800, 8 of 20
  time: 0.55758, 9 of 20
  time: 0.56164, 10 of 20
  time: 0.57367, 11 of 20
  time: 0.57429, 12 of 20
  time: 0.56993, 13 of 20
  time: 0.56573, 14 of 20
  time: 0.57223, 15 of 20
  time: 0.56717, 16 of 20
  time: 0.56148, 17 of 20
  time: 0.56961, 18 of 20
  time: 0.57337, 19 of 20
time: 0.56750

== Times ==
  random order : 0.86
  vertex cluser : 0.76 (12.14% improvement)
  data-oriented : 0.28 (202.44% improvement)
  integer indices : 0.57 (51.13% improvement)
== Test Finished ==
1 Like