You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When loading a tasproj from within TAStudio, the current rewind buffer is not disposed, meaning there will now be a rewind savestate buffer and the buffers from TAStudio loaded at the same time. That has no advantage whatsoever as rewind is disabled while TAStudio is active, and the buffer won't get filled with states until TAStudio is closed. Having that rewind buffer loaded the entire time is a waste of RAM.
This does not happen when loading TAStudio for the first time; the current rewind buffer is correctly disposed then.
Here's the order of operations in regards to MemoryBlock allocations + disposals when opening TAStudio, assuming rewind is currently enabled:
A new MemoryBlock is allocated for the Current, Recent and Gaps areas respectively.
Those 3 MemoryBlocks are then immediately disposed.
A new MemoryBlock is allocated for the Current, Recent and Gaps areas respectively.
The current rewind buffer is disposed.
A new rewind buffer is allocated.
The current (new) rewind buffer is disposed.
And what happens when a tasproj is loaded from within TAStudio (for example by just pressing New):
A new MemoryBlock is allocated for the Current, Recent and Gaps areas respectively.
Those 3 MemoryBlocks are then immediately disposed.
A new MemoryBlock is allocated for the Current, Recent and Gaps areas respectively.
The current rewind buffer is disposed.
The current MemoryBlocks for the Current, Recent and Gaps areas are disposed.
A new rewind buffer is allocated.
Clearly, the only problem here is that the newly created rewind buffer is not disposed again.
There is so much code involved in doing all these steps I honestly am afraid to touch any of it. Hopefully this documentation can help somehow.
The text was updated successfully, but these errors were encountered:
Summary
When loading a tasproj from within TAStudio, the current rewind buffer is not disposed, meaning there will now be a rewind savestate buffer and the buffers from TAStudio loaded at the same time. That has no advantage whatsoever as rewind is disabled while TAStudio is active, and the buffer won't get filled with states until TAStudio is closed. Having that rewind buffer loaded the entire time is a waste of RAM.
This does not happen when loading TAStudio for the first time; the current rewind buffer is correctly disposed then.
Here's the order of operations in regards to
MemoryBlock
allocations + disposals when opening TAStudio, assuming rewind is currently enabled:MemoryBlock
is allocated for theCurrent
,Recent
andGaps
areas respectively.MemoryBlock
s are then immediately disposed.MemoryBlock
is allocated for theCurrent
,Recent
andGaps
areas respectively.And what happens when a tasproj is loaded from within TAStudio (for example by just pressing
New
):MemoryBlock
is allocated for theCurrent
,Recent
andGaps
areas respectively.MemoryBlock
s are then immediately disposed.MemoryBlock
is allocated for theCurrent
,Recent
andGaps
areas respectively.MemoryBlock
s for theCurrent
,Recent
andGaps
areas are disposed.Clearly, the only problem here is that the newly created rewind buffer is not disposed again.
There is so much code involved in doing all these steps I honestly am afraid to touch any of it. Hopefully this documentation can help somehow.
The text was updated successfully, but these errors were encountered: