I did not notice this issue until recently. I also did a comparison between my current project(300MB) and a default startup project. Default project had absolutely no delays or tiny freezes.
I could not understand this very well, is this normal?
And if it is normal, why is undoing/redoing a translate operation(or any operation) on even a single object would cause such amount of delay or mini-freeze? I assumed doing undo/redos involving lots of objects would be slow, but can’t wrap my brains over why it is the case for a single object… Unless Blender does its undo/redos by somehow iterating through all objects in the file?
It’s just a bit annoying after all. But I’m curious to know what’s really happening if anyone with the knowledge would like to share. I will definitely appreciate it.
And, turning off ‘Global Undo’ also prevented me from calling any operator redo popup. --Edit: Actually, I can call the redo popup, and the popup shows up. But everything is greyed out. I’m not able to make changes.
Edit2: Reducing undo ‘Steps’ does not help either. Lowering the ‘Memory Limit’ also doesn’t seem to have any effect.
Edit3: Moving all dense objects into another scene has made my current scene much more responsive. I was expecting the ‘Layers’ to function similarly, but seems like ‘Layers’ only affect visibilities.
Edit4: Having only one object in a layer does reduce the delay marginally. But compare to a new scene, it’s still significantly slow.
So, when the undo/redo happens, the scene is reset to a previous state. Is there a way to customize the ‘UNDO’ behaviour of an operator?
This is normal, because much of the global undo system in Blender is just a hack that creates a copy of the .blend file for each step (a copy which may or may not be stripped down to avoid overwhelming increases in RAM usage).
Improvements to this system get committed every now and then, but there hasn’t been an effort to seriously overhaul it since its inception back in Blender 2.35 (which was more than ten years ago).
Around 152 objects. 7m in triangles. Taking up 1013MB of RAM.
My project became sluggish even in a new scene now, I have no clue what’s going on.
This make sense… I really wish there is a way to override/hard code the ‘UNDO’ behaviour of the bpy.types.Operators instead of using blender’s default method.
I have a 3770K, a GTX 970 and 16GB of ram. What should I get?
I looked over at 7700K and it would give me 30% of effective CPU power boost according to UserBench.com whilst a GTX 1080 is not likely going to affect how fast the UNDO happens… Being thinking about Ryzen, but after all Blender itself doesn’t seem to use much of the multi-cores, and I don’t do much CPU rendering.
Plus a new CPU means I need new RAM and MOBO. Can’t find a upgrade that’s worth it.