Skyrim
0 of 0

File information

Last updated

Original upload

Created by

DevourerPi

Uploaded by

DevourerPi

Virus scan

Safe to use

Tags for this mod

About this mod

Skyrim's memory management may not be very good, this plugin can help you better manage its memory, improve memory performance and utilization.

Requirements
Permissions and credits
Changelogs
Donations
  • Skyrim Memory Optimizer


Skyrim is a 32-bit application. It may crash under high memory usage. This plugin can help you solve this problem. It can also better manage Skyrim's memory.








  • You may need to install runtime libraries :


1. Skyrim Script Extender (SKSE) 1.7.3 : http://skse.silverlock.org/

2. Microsoft Visual C++ Runtime Library for Visual Studio 2015, 2017 and 2019 : 
https://support.microsoft.com/en-us/help/2977003/the-latest-supported-visual-c-downloads



Plug-in installation guide :

1. Download the Skyrim Memory Optimizer - Mainfile ZIP package, you can install it directly using the MOD manager, or put all the files in the Plugins in the ZIP into Data\SKSE\Plugins\, wait, this is not over yet, if you are like this Start, the plug-in will pop up an error message with an error code of 2, so you have to download the ZIP package of Memory Optimizer, and then unzip the Memory Optimizer.exe in the ZIP to the Skyrim directory (near TESV.exe).

2. If you want to install optional files (refer to the compatibility notes first), download the Skyrim Memory Optimizer - Allocator ZIP package, install it directly with the MOD manager, or unzip the DLL in the ZIP to Data\SKSE\Plugins\.


Note: If you follow the normal installation method, but there is no Memory Optimizer.exe running in the Task Manager, you can try to install it without using the Mod Manager, just overwrite them in the Data.




  • Introduction to important functions


1. Memory Swap : This plugin will create a process called Memory Optimizer.exe, which will monitor the Skyrim process in real time, and will try to write to virtual memory when the memory usage reaches a certain value, which can prevent crashes caused by high memory usage. 
I wrote a special algorithm in this part of the code: it will automatically calculate the most suitable memory usage for your game, and control the game's memory usage within this range, and this does not affect performance! It will not affect the game Any bad effects .

2. Allocate Virtual Address Space : This plugin will take over the virtual memory space of the game process, and used with memory swap will ensure the memory performance of the game .

3. Create Static Memory UnitsCreate a memory block of a suitable size for your game, which may help improve the allocation efficiency. It should be noted that this does not replace SKSE's memory patch

4. Memory AllocatorAnother standalone plugin, it does not rely on Skyrim Memory Optimizer. It used to be part of it, but because of compatibility issues, I separated it from Main File . You need to install Skyrim Memory Optimizer - Allocator for the memory allocator to take effect. 
Create a dynamic memory pool for your game, allocate and release memory more intelligently, improve memory performance and memory utilization.










  •  Compatibility note


1. Skyrim Memory Optimizer - MainFile : Contains the main files of Skyrim Memory Optimizer. It is theoretically compatible with any plug-in. The working principle of this plug-in and other plug-ins may be very different. In addition to the basic optimization and repair functions of the plug-in, I also wrote a memory monitoring executable The file is in the DLL. It is injected and runs in the background to monitor the priority process. You can check the pictures I uploaded to find the relevant content.

2. Skyrim Memory Optimizer - Allocator : A separate memory allocator plug-in is included. I separated it from Main File because it has a little compatibility problem with Crash Fixes. If you use Crash Fixes 's  "UseOSAllocators=1" , then Skyrim Memory Optimizer 's Allocator may not work properly , So I put it here.












The explanation in the configuration file is in Chinese, you can see the complete English explanation of the configuration file here:



  • Detailed configuration file




---------------------------------------------------INI Explanation----------------------------------------------------

[MAIN]

; Game executable file name, default TESV, no need to add ".exe"
ExecutableFileName = TESV

; Console output memory information, temporarily useless
ConsoleInformationOutput = true

; Development and debugging options
EnableDebuggingInformation = false

; support (Chinese , English , Russian), translation of some prompt messages
Language = English

[MEMORY]

; Enable memory swap, Solve the crash problem caused by Out of Memory
EnableMemorySwap = true
; Reallocate the swapped memory for better memory performance. You can turn off the memory swap and turn on this option separately for better performance !
ReallocateSwapMemory = false
; Discarding the cache of the swap memory may affect memory performance and loading time, and only use it when there is a serious memory shortage
RemoveSwapMemoryCache = false
; Recommended value 1800
MemorySwapBlockSize = 1800
; Recommended value 20 - 100
MemorySwapCycle = 50

; take over the virtual memory space, ensure the memory performance of the game
EnableAllocVirtualAddressSpace = true
; Allocation Type, It is temporarily useless, default COMMIT
VirtualAddressAllocationType = COMMIT

[ALLOCATOR]

; Create a static memory unit, use a fixed-size memory block when allocating memory, which can improve memory allocation efficiency, but not releasing the memory may cause memory leaks. Please be aware
CreateStaticMemoryUnits = true

; Static memory unit length
StaticMemoryUnitLength = 1024

; The number of static memory unit buffers : determines the efficiency of allocation and cannot exceed the unit length
StaticMemoryUnitBuffers = 1024

; The memory that is not reset to zero will cause memory waste. Please be aware
StaticMemoryUnitsAutoClear = true

[OPTIMIZATION]

; 3 is real time, 2 is high, 1 is higher than normal, 0 is normal, -1 is lower than normal, -2 is low , setting 3 may cause problems
SetProcessPriorityClass = 2

; Improve multi-core CPU utilization
EnableProcessMultithreadingOptimize = true

[FIX]

; Fix infinite loading, If it crashes during loading, try setting it to false
FixInfiniteLoad = true

; Fix loading crash, this may be faster
FixLoadCrash = true

; Fix crashes caused by thread errors, which will directly reduce the performance of the game by more than half
EnableUnsafeThreadCrashFix = false

-----------------------------------------------------Split Line------------------------------------------------------------



Main File Update Log :

-Skyrim Memory Optimizer 1.1 Update Records :

1. Replace " push ecx ; push ecx " with " push [esp] " , Replace some less efficient assembly with like " pushad " and " popad " , Replace " pop ecx ; mov ecx ; push ecx " with " mov [esp] " . Oh, these are hard to understand, but they can improve operational efficiency.

2.The explanation of the unknown language entry in the configuration file has been deleted, and the detailed explanation can be found in the MOD Description.

3.Corrected the wrong configuration item value in the configuration file.

4.Reduce a false positive problem.



-Skyrim Memory Optimizer 1.2 Update Records :

1.Fixed the bug that some users could not start the game.

2.Fixed the bug of incorrect function judgment.



-Skyrim Memory Optimizer 1.3 Update Records :

1.It will no longer be judged by Windows Defender as a "wacatac" virus.

2.Improve the function of improving multi-threading performance, but only if it is higher than the four cores will the obvious effect be felt.

3.Add a simple memory allocator, there is no compatibility problem.

4.To remove the memory monitoring program, you must manually put the monitoring program into the Skyrim directory.





You can see the memory optimization plugin for Oblivion version : https://www.nexusmods.com/oblivion/mods/50357



My English is not very good. There may be inaccurate translations of some professional vocabulary. If you find a problem, please feedback to me, thank you !