I'm noticing when loading a 250mb OBJ file (high resolution mesh), Blender goes from 89mb RAM to around 2.1gb. Loading the same mesh in Preview.app uses around 300mb.

Why is that? Is there a way to reduce usage?

I suspect this is due to Blender using a half-edge (or similar) data structure for loaded meshes. But even so, I'm surprised by the memory usage, given OBJ is a very inefficient text-based format.

Update: following the steps here, I printed out memory usage details:

total memory len: 1077.328 MB peak memory len: 1077.372 MB slop memory len: 15.404 MB ITEMS TOTAL-MiB AVERAGE-KiB TYPE 13547 ( 422.624 31.946) Chunk buffer 1 ( 158.249 162047.156) CDMLoop 1 ( 118.687 121535.367) CDMEdge 2 ( 105.500 54015.812) DM_ensure_looptri_data 2 ( 79.125 40511.824) face_nors 1 ( 79.125 81023.578) CDMPoly 1 ( 65.937 67519.648) CDMVert 2 ( 26.375 13503.941) GPUBufferMaterial.polys 2 ( 13.187 6751.980) GPUDrawObject.vert_points

I'm guessing CDMLoop and CDMEdge are part of the mesh data structure, though I'm not sure what Chunk buffers are. Googling and searching the blender repo on github didn't lead to clear results.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.