Skip to content

Memory Estimation

Use case scenario

Imagine you are trying to render a complex scene with many meshes and textures but Blender keeps crashing because the PC is running out of memory. You want to deactivate some of them to lower memory consumption but, how do you know what is using the most memory?

By using the Memory Estimation you will be able to identify the biggest datablocks, deactivate or modify them, and try rendering again. While this solution is still fairly manual, it saves you from having to make shots in the dark.

Memory Estimation Operators

The Estimate this File operator will go through all the datablocks in the current file that would have to be loaded for rendering, and estimate how much memory is needed for each one. This is useful for knowing which blocks are the most memory consuming. To estimate different files or even folders of files, you can use the Estimate File/Folder operator.

estimate memory button

Before generating a memory estimation report, you can specify a directory where the report should be generated. You can also choose between two formats - HTML and JSON. By clicking the estimate button a report will be generated and opened in your browser for HTML or text editor for JSON, showing an estimation of how much memory each datablock will use.

Memory Estimation Report

In the memory estimation report, you can find a list of used datablocks along with their type, name and size. To sort the datablocks by each of these attributes, either in ascending or descending order, simply click the column name. By default, small datablocks that are 0B in the report are not displayed. To see these datablocks, toggle the Show 0B button.

estimate memory report

In case the report is generated for multiple files, you can browse these files in the file tree view on the left. You may also search for files in the header search bar. To sort files by name and size, you can use the sort buttons in the green header of the report. Click on the [+] button to expand files and directories.

estimate memory report folder

Not all datablocks may be taken into account

Since there is a wide variety of datablocks, not all of them will be taken into account. Meshes and images are calculated, but some types that use only a small amount of memory may be left out or display 0 B of memory usage. The estimated "total usage" will be much lower than the memory reported by Blender during render. The correlation between estimated memory usage and rendering memory usage is not linear, so this is not calculated by the addon operator.