Memory management in OneCommander


OneCommander is made in Microsoft's .NET framework, which manages memory for OneCommander. Windows may let a program's memory footprint grow while the program is used but when Windows needs memory again, it will compact the program memory and reclaim unused resources


OneCommander caches icons so they are loaded faster the next time they are needed in the program session. All displayed file properties are also cached while they are in the list, so scrolling through large folders will use more memory, but the memory will be released once the user opens another folder (at Windows' own schedule).


If you are making custom icons for files/folders/menu items, make sure they are reasonable size (64x64px or 16 multiplied by your display scale factor), as those will be loaded into memory the first time they are used and remain there even if they are not on-screen)


Each thumbnail in the file list and displayed preview will take a chunk of memory. For example, a previewed 10-Megapixel photo will take 10x3 Megabytes (3 as number of color channels), even if the image is a compressed jpeg because it has to be decoded to display.


Tabs don’t take additional memory in OneCommander. 


If you choose to keep the program running in the background on close (see the option in Settings > Window) all windows, file properties, previews and the rest will be unloaded from memory, but the program will keep cached icons and compiled code for a faster next start, while minimizing RAM usage.


OneCommander is written in memory-safe language, and due to the Windows managing it, there is no granular control available to developers so  it won't win any prizes for lighweight memory, but this also means that the program is safer from tampering and plays nicer with other programs on Windows regarding memory usage.