Speed up redo panel/operators idea

I get the impression from the really slow performance of edit mode operators, that each time you add an additional iteration it’s having to start all the way from the objects initial state prior to executing the operation. Would it speed things up if just the new geometry(faces,verts,edges) for each iteration were stored in ram, then every time you add or subtract an iteration it would then only have to worry about calculating from the current state, or removing the geomtery from the mesh which is associated with that iteration. Basically you’d have only one copy of the mesh in ram, but the geometry would have an additional attribute called iteration. Once the operation has been completed, the iteration value could be removed from the meshes data.

I think the only time it should start all the way from the beginning is if one of the parameters are changed, but not the iterations, at least in the case of additive operations like the screw operation for example. For non additive operations like smooth, then it should store the entire mesh in ram, but only for it’s current state, and then reverse engineer the current state when removing an iteration, rather than performing all iterations again from the initial state. Perhaps to avoid ever having to calculate too many iterations in non additive operations, just the vertex positions for the entire mesh could be stored every x number of iterations, where x is dependant on available system ram and mesh density. That way if a user changes the iterations from 100 to 20, and there are ten versions of the meshes vertex positions in memory, it could reverse engineer from 30 instead of all the way from 100.