IMcResourceManagerImageUndoLimits Property
|
|
Sets and exposes limits on whether and how image memory is placed on the undo stack..
Namespace:
MediaCy.IQL.Engine
Assembly:
MediaCy.IQL.Engine (in MediaCy.IQL.Engine.dll) Version: 10.0.6912.0
Syntax
RemarksIn order to avoid wasting time or memory by pushing too much image memory onto
the undo/redo stacks, a graded set of tests is applied to images being placed on these
stacks, based on the size of the image information to be backed up and on the current
level of memory consumption.
The lowest level of test is specified by the
ImageUndoLimits(mcImageUndoLimits.mciulKeepUndoPcnt) or
ImageUndoLimits(mcImageUndoLimits.mciulKeepUndoMBytes) properties (whichever yields the
smaller amount of memory). Image undo backup operations that require less than this
amount of memory are placed on the stack in a normal image with low NextAccessPriority;
should memory get tight, these images will be spooled out to swap files and so preserve
the ability to undo the operation. The default for this property is the smaller 0.1% of
MemoryMax(mcMemoryType.mcmtImageMemoryMBytes),
MemoryManagerInfo(mcMemoryManagerInfo.mcmmiUsablePhysical), or 1.0 MByte.
The next level of test is specified by the
ImageUndoLimits(mcImageUndoLimits.mciulConditionallyKeepUndoPcnt) or
ImageUndoLimits(mcImageUndoLimits.mciulConditionallyKeepUndoMBytes) properties (whichever
yields the smaller amount of memory). Undo backup images that consume less memory than
this are assigned memory that is "conditionally discardable". If memory gets tight,
conditionally discardable undo steps will be spooled to a swap file unless
ImageUndoLimits((mcImageUndoLimits.ConditionallyKeepUndoTimeoutSec) seconds have passed
since the undo information was pushed onto the undo stack; after this time, the step will
be discarded in tight-memory situations. The default for this property is the smaller
2.0% of MemoryMax(mcMemoryType.mcmtImageMemoryMBytes),
MemoryManagerInfo(mcMemoryManagerInfo.mcmmiUsablePhysical), or 20.0 MByte. The default
timeout is 120 seconds (two minutes).
The highest level of test is specified by the
ImageUndoLimits(mcImageUndoLimits.mciulMaxUndoPcnt) or
ImageUndoLimits(mcImageUndoLimits.mciulMaxUndoMBytes) properties (whichever yields the
smaller amount of memory). Undo backup images that need to consume more memory than this
are just not created at all; the undo step is marked as "too big". For undo images that
are smaller than the MaxUndo limit, but larger than the ConditionallyKeepUndo limit the
situation depends on whether memory is already tight at the time the undo information for
an operation is pushed. If memory is tight, then the undo image is not created and the
step is marked "too big", just as above. If memory is not tight, the undo image is
created and pushed onto the stack with its memory marked as "discardable". Should memory
subsequently become tight, discardable memory is thrown away rather than taking the time
to spool it out to a swap file; undo steps where this happens are marked as "discarded".
The default for the "MaxUndo" property is the smaller 20.0% of
MemoryMax(mcMemoryType.mcmtImageMemoryMBytes),
MemoryManagerInfo(mcMemoryManagerInfo.mcmmiUsablePhysical), or 400.0 MByte.
See Also