Jump to content
  • 0

Sheson's Memory Patch & meh321's Crash Fixes??


Joat_Mon

Question

 

I've been using meh321's Crash Fixes for a while and meh321 says that it isn't necessary to do any thing to “remove†Sheson's Memory Patch as it will not load. However MemoryBlocksLog.log line one still shows blocks 1 & 2 as allocated per the settings in skse.ini. And two additional lines showing 85 and 8 for memory used for blocks 1 & 2 respectively.

 

So I commented out the lines under [Memory] in skse.ini and the log then showed the default block sizes and still two lines of 85 & 8 used. I have played like this for a while.

 

Today I changed my skse.ini to

 

[Memory]

DefaultHeapInitialAllocMB=256

ScrapHeapSizeMB=0

 

and now MemoryBlocksLog.log shows 0MB and 0MB on the first line and still shows 85 & 8 used on the next two lines. Skyrim still seems to run fine.

 

The questions are:

 

Have I actually gained back those memory allocations for use elsewhere?

Or am I flirting with disaster?

 

Btw if you set DefaultHeapInitialAllocMB= to less than 256 MemoryBlocksLog.log will show a negative number and the game still seems to run fine.

Link to comment
Share on other sites

3 answers to this question

Recommended Posts

  • 0

Are you using the SKSE Plugin Preloader with Crash Fixes? Also UseOSAllocators=1?

 

If not, you are still reliant on Sheson's memory patch.

Yes and yes, Crash Fixes has been working well for several weeks. It was just nagging at me that the game engine was still allocating memory blocks that it wasn't using and that the size of those blocks still responded to the skse.ini memory settings.

Link to comment
Share on other sites

  • 0

After a week of research and testing it turns out that this is mostly a nonissue. Based on notations in meh321’s source code for Crash Fixes and the following two statements;

  1. Meh321 states that using Crash Fixes memory patch will, “Completely disable Skyrim's memory allocator and use regular C malloc. That means memory blocks will not exist anymore…â€.
  2. Sheson states that, “Technically there is no way for MemoryBlocksLog to report the max number for heap memory (block1) incorrectly, it reads it from the address the engine uses to allocate the memory.â€

I misunderstood that to mean that the Gamebryo engine would be prevented from creating the two heap memory blocks. It now seems to me that the blocks are created, then Crash Fixes removes them and it is just a timing quirk that MemoryBlocksLog is recording them before they are freed. Examining the TESV process in VMMap shows me that the blocks no longer remain allocated in game.

 

I wish to thank hishutup, Sheson, keithinhanoi and meh321 for the thorough testing and documentation they provided here on STEP, and elsewhere.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...

Important Information

By using this site, you agree to our Guidelines, Privacy Policy, and Terms of Use.