Skip to content
Snippets Groups Projects
Commit a623efcc authored by Rye Mutt's avatar Rye Mutt :bread:
Browse files

Fix rollover issues and small optimization to memory getters on windows

parent 290f83da
No related branches found
No related tags found
No related merge requests found
...@@ -726,12 +726,12 @@ U32Kilobytes LLMemoryInfo::getPhysicalMemoryKB() const ...@@ -726,12 +726,12 @@ U32Kilobytes LLMemoryInfo::getPhysicalMemoryKB() const
void LLMemoryInfo::getAvailableMemoryKB(U32Kilobytes& avail_physical_mem_kb, U32Kilobytes& avail_virtual_mem_kb) void LLMemoryInfo::getAvailableMemoryKB(U32Kilobytes& avail_physical_mem_kb, U32Kilobytes& avail_virtual_mem_kb)
{ {
#if LL_WINDOWS #if LL_WINDOWS
// Sigh, this shouldn't be a static method, then we wouldn't have to MEMORYSTATUSEX state;
// reload this data separately from refresh() state.dwLength = sizeof(state);
LLSD statsMap(loadStatsMap()); GlobalMemoryStatusEx(&state);
avail_physical_mem_kb = (U32Kilobytes)statsMap["Avail Physical KB"].asInteger(); avail_physical_mem_kb = U64Bytes(state.ullAvailPhys);
avail_virtual_mem_kb = (U32Kilobytes)statsMap["Avail Virtual KB"].asInteger(); avail_virtual_mem_kb = U64Bytes(state.ullAvailVirtual);
#elif LL_DARWIN #elif LL_DARWIN
// mStatsMap is derived from vm_stat, look for (e.g.) "kb free": // mStatsMap is derived from vm_stat, look for (e.g.) "kb free":
...@@ -882,14 +882,14 @@ LLSD LLMemoryInfo::loadStatsMap() ...@@ -882,14 +882,14 @@ LLSD LLMemoryInfo::loadStatsMap()
GlobalMemoryStatusEx(&state); GlobalMemoryStatusEx(&state);
DWORDLONG div = 1024; DWORDLONG div = 1024;
DWORDLONG div_mb = 1024 * 1024;
stats.add("Percent Memory use", state.dwMemoryLoad/div); stats.add("Percent Memory use", state.dwMemoryLoad);
stats.add("Total Physical KB", state.ullTotalPhys/div); stats.add("Total Physical MB", state.ullTotalPhys/div_mb);
stats.add("Avail Physical KB", state.ullAvailPhys/div); stats.add("Avail Physical MB", state.ullAvailPhys/div_mb);
stats.add("Total page KB", state.ullTotalPageFile/div); stats.add("Total page MB", state.ullTotalPageFile/div_mb);
stats.add("Avail page KB", state.ullAvailPageFile/div); stats.add("Avail page MB", state.ullAvailPageFile/div_mb);
stats.add("Total Virtual KB", state.ullTotalVirtual/div); stats.add("Total Virtual MB", state.ullTotalVirtual/div_mb);
stats.add("Avail Virtual KB", state.ullAvailVirtual/div); stats.add("Avail Virtual MB", state.ullAvailVirtual/div_mb);
// SL-12122 - Call to GetPerformanceInfo() was removed here. Took // SL-12122 - Call to GetPerformanceInfo() was removed here. Took
// on order of 10 ms, causing unacceptable frame time spike every // on order of 10 ms, causing unacceptable frame time spike every
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment