How much memory should you be able to allocate?

前端 未结 8 1063
失恋的感觉
失恋的感觉 2020-12-31 17:36

Background: I am writing a C++ program working with large amounts of geodata, and wish to load large chunks to process at a single go. I am constrained to working with an a

8条回答
  •  不思量自难忘°
    2020-12-31 18:22

    Sysinternals VMMap is great for investigating virtual address space fragmentation, which is probably limiting how much contiguous memory you can allocate. I recommend setting it to display free space, then sorting by size to find the largest free areas, then sorting by address to see what is separating the largest free areas (probably rebased DLLs, shared memory regions, or other heaps).

    Avoiding extremely large contiguous allocations is probably for the best, as others have suggested.

    Setting LARGE_ADDRESS_AWARE=YES (as jalf suggested) is good, as long as the libraries that your application depends on are compatible with it. If you do so, you should test your code with the AllocationPreference registry key set to enable top-down virtual address allocation.

提交回复
热议问题