bytes: use bytes for everything...
Convert Linux memory values to bytes rather than reducing the granularity of every other OS which reports memory use in bytes. The previous method just made everything confusing when it needn't be.
This commit is contained in:
parent
c9a8d114df
commit
f61e780f0b
|
@ -93,14 +93,6 @@
|
||||||
#define RESULTS_MEM_GB 0x80
|
#define RESULTS_MEM_GB 0x80
|
||||||
#define RESULTS_CPU_CORES 0x100
|
#define RESULTS_CPU_CORES 0x100
|
||||||
|
|
||||||
#if defined(__FreeBSD__) || defined(__DragonFly__) || defined(__OpenBSD__)
|
|
||||||
static void
|
|
||||||
_memsize_bytes_to_kb(unsigned long *bytes)
|
|
||||||
{
|
|
||||||
*bytes /= 1024;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(__linux__)
|
#if defined(__linux__)
|
||||||
static char *
|
static char *
|
||||||
file_contents(const char *path)
|
file_contents(const char *path)
|
||||||
|
@ -490,6 +482,14 @@ _memory_usage_get(meminfo_t *memory)
|
||||||
memory->used = memory->total - tmp_free - memory->cached - memory->buffered;
|
memory->used = memory->total - tmp_free - memory->cached - memory->buffered;
|
||||||
memory->swap_used = memory->swap_total - swap_free;
|
memory->swap_used = memory->swap_total - swap_free;
|
||||||
|
|
||||||
|
memory->total *= 1024;
|
||||||
|
memory->used *= 1024;
|
||||||
|
memory->buffered *= 1024;
|
||||||
|
memory->cached *= 1024;
|
||||||
|
memory->shared *= 1024;
|
||||||
|
memory->swap_total *= 1024;
|
||||||
|
memory->swap_used *= 1024;
|
||||||
|
|
||||||
fclose(f);
|
fclose(f);
|
||||||
#elif defined(__FreeBSD__) || defined(__DragonFly__)
|
#elif defined(__FreeBSD__) || defined(__DragonFly__)
|
||||||
unsigned int free = 0, active = 0, inactive = 0, wired = 0;
|
unsigned int free = 0, active = 0, inactive = 0, wired = 0;
|
||||||
|
@ -518,19 +518,14 @@ _memory_usage_get(meminfo_t *memory)
|
||||||
if ((buffered = _sysctlfromname("vfs.bufspace", mib, 2, &len)) < 0)
|
if ((buffered = _sysctlfromname("vfs.bufspace", mib, 2, &len)) < 0)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
_memsize_bytes_to_kb(&memory->total);
|
|
||||||
memory->used = ((active + wired + cached) * page_size);
|
memory->used = ((active + wired + cached) * page_size);
|
||||||
_memsize_bytes_to_kb(&memory->used);
|
|
||||||
memory->buffered = buffered;
|
memory->buffered = buffered;
|
||||||
_memsize_bytes_to_kb(&memory->buffered);
|
|
||||||
memory->cached = (cached * page_size);
|
memory->cached = (cached * page_size);
|
||||||
_memsize_bytes_to_kb(&memory->cached);
|
|
||||||
|
|
||||||
result = _sysctlfromname("vm.swap_total", mib, 2, &len);
|
result = _sysctlfromname("vm.swap_total", mib, 2, &len);
|
||||||
if (result < 0)
|
if (result < 0)
|
||||||
return;
|
return;
|
||||||
|
memory->swap_total = result;
|
||||||
memory->swap_total = (result / 1024);
|
|
||||||
|
|
||||||
miblen = 3;
|
miblen = 3;
|
||||||
if (sysctlnametomib("vm.swap_info", mib, &miblen) == -1) return;
|
if (sysctlnametomib("vm.swap_info", mib, &miblen) == -1) return;
|
||||||
|
@ -547,9 +542,6 @@ _memory_usage_get(meminfo_t *memory)
|
||||||
|
|
||||||
memory->swap_used += (unsigned long) xsw.xsw_used * page_size;
|
memory->swap_used += (unsigned long) xsw.xsw_used * page_size;
|
||||||
}
|
}
|
||||||
|
|
||||||
memory->swap_used >>= 10;
|
|
||||||
|
|
||||||
#elif defined(__OpenBSD__)
|
#elif defined(__OpenBSD__)
|
||||||
static int mib[] = { CTL_HW, HW_PHYSMEM64 };
|
static int mib[] = { CTL_HW, HW_PHYSMEM64 };
|
||||||
static int bcstats_mib[] = { CTL_VFS, VFS_GENERIC, VFS_BCACHESTAT };
|
static int bcstats_mib[] = { CTL_VFS, VFS_GENERIC, VFS_BCACHESTAT };
|
||||||
|
@ -592,23 +584,17 @@ _memory_usage_get(meminfo_t *memory)
|
||||||
memory->swap_total += (swdev[i].se_nblks / (1024 / DEV_BSIZE));
|
memory->swap_total += (swdev[i].se_nblks / (1024 / DEV_BSIZE));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
memory->swap_total *= 1024;
|
||||||
|
memory->swap_used *= 1024;
|
||||||
swap_out:
|
swap_out:
|
||||||
if (swdev)
|
if (swdev)
|
||||||
free(swdev);
|
free(swdev);
|
||||||
|
|
||||||
memory->total /= 1024;
|
|
||||||
|
|
||||||
memory->cached = (uvmexp.pagesize * bcstats.numbufpages);
|
memory->cached = (uvmexp.pagesize * bcstats.numbufpages);
|
||||||
_memsize_bytes_to_kb(&memory->cached);
|
|
||||||
|
|
||||||
memory->used = (uvmexp.active * uvmexp.pagesize);
|
memory->used = (uvmexp.active * uvmexp.pagesize);
|
||||||
_memsize_bytes_to_kb(&memory->used);
|
|
||||||
|
|
||||||
memory->buffered = (uvmexp.pagesize * (uvmexp.npages - uvmexp.free));
|
memory->buffered = (uvmexp.pagesize * (uvmexp.npages - uvmexp.free));
|
||||||
_memsize_bytes_to_kb(&memory->buffered);
|
|
||||||
|
|
||||||
memory->shared = (uvmexp.pagesize * uvmexp.wired);
|
memory->shared = (uvmexp.pagesize * uvmexp.wired);
|
||||||
_memsize_bytes_to_kb(&memory->shared);
|
|
||||||
#elif defined(__MacOS__)
|
#elif defined(__MacOS__)
|
||||||
int mib[2] = { CTL_HW, HW_MEMSIZE };
|
int mib[2] = { CTL_HW, HW_MEMSIZE };
|
||||||
size_t total;
|
size_t total;
|
||||||
|
@ -624,20 +610,15 @@ swap_out:
|
||||||
mach_port = mach_host_self();
|
mach_port = mach_host_self();
|
||||||
count = sizeof(vm_stats) / sizeof(natural_t);
|
count = sizeof(vm_stats) / sizeof(natural_t);
|
||||||
|
|
||||||
total >>= 10;
|
|
||||||
memory->total = total;
|
memory->total = total;
|
||||||
|
|
||||||
if (host_page_size(mach_port, &page_size) == KERN_SUCCESS &&
|
if (host_page_size(mach_port, &page_size) == KERN_SUCCESS &&
|
||||||
host_statistics64(mach_port, HOST_VM_INFO, (host_info64_t)&vm_stats, &count) == KERN_SUCCESS)
|
host_statistics64(mach_port, HOST_VM_INFO, (host_info64_t)&vm_stats, &count) == KERN_SUCCESS)
|
||||||
{
|
{
|
||||||
memory->used = vm_stats.active_count + vm_stats.inactive_count + vm_stats.wire_count * page_size;
|
memory->used = vm_stats.active_count + vm_stats.inactive_count + vm_stats.wire_count * page_size;
|
||||||
memory->used >>= 10;
|
|
||||||
memory->cached = vm_stats.active_count * page_size;
|
memory->cached = vm_stats.active_count * page_size;
|
||||||
memory->cached >>= 10;
|
|
||||||
memory->shared = vm_stats.wire_count * page_size;
|
memory->shared = vm_stats.wire_count * page_size;
|
||||||
memory->shared >>= 10;
|
|
||||||
memory->buffered = vm_stats.inactive_count * page_size;
|
memory->buffered = vm_stats.inactive_count * page_size;
|
||||||
memory->buffered >>= 10;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
total = sizeof(xsu);
|
total = sizeof(xsu);
|
||||||
|
@ -646,6 +627,8 @@ swap_out:
|
||||||
memory->swap_total = xsu.xsu_total;
|
memory->swap_total = xsu.xsu_total;
|
||||||
memory->swap_used = xsu.xsu_used;
|
memory->swap_used = xsu.xsu_used;
|
||||||
}
|
}
|
||||||
|
memory->swap_total *= 1024;
|
||||||
|
memory->swap_used *= 1024;
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1464,12 +1464,13 @@ _evisum_resize_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
|
||||||
}
|
}
|
||||||
|
|
||||||
const char *
|
const char *
|
||||||
evisum_size_format(unsigned long value)
|
evisum_size_format(unsigned long bytes)
|
||||||
{
|
{
|
||||||
const char *s, *unit = "BKMGTPEZY";
|
const char *s, *unit = "BKMGTPEZY";
|
||||||
unsigned long int powi = 1;
|
unsigned long int value, powi = 1;
|
||||||
unsigned int precision = 2, powj = 1;
|
unsigned int precision = 2, powj = 1;
|
||||||
|
|
||||||
|
value = bytes;
|
||||||
while (value > 1024)
|
while (value > 1024)
|
||||||
{
|
{
|
||||||
if ((value / 1024) < powi) break;
|
if ((value / 1024) < powi) break;
|
||||||
|
@ -1632,8 +1633,8 @@ _sys_info_all_poll_feedback_cb(void *data, Ecore_Thread *thread, void *msg)
|
||||||
value = sysinfo->memory.used / ratio;
|
value = sysinfo->memory.used / ratio;
|
||||||
elm_progressbar_value_set(progress, value / 100);
|
elm_progressbar_value_set(progress, value / 100);
|
||||||
elm_progressbar_unit_format_set(progress, eina_slstr_printf("%s / %s",
|
elm_progressbar_unit_format_set(progress, eina_slstr_printf("%s / %s",
|
||||||
evisum_size_format(sysinfo->memory.used << 10),
|
evisum_size_format(sysinfo->memory.used),
|
||||||
evisum_size_format(sysinfo->memory.total << 10)));
|
evisum_size_format(sysinfo->memory.total)));
|
||||||
out:
|
out:
|
||||||
free(sysinfo->cores);
|
free(sysinfo->cores);
|
||||||
free(sysinfo);
|
free(sysinfo);
|
||||||
|
|
|
@ -121,6 +121,6 @@ const char *
|
||||||
evisum_icon_path_get(const char *name);
|
evisum_icon_path_get(const char *name);
|
||||||
|
|
||||||
const char *
|
const char *
|
||||||
evisum_size_format(unsigned long value);
|
evisum_size_format(unsigned long bytes);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -142,8 +142,8 @@ ui_tab_memory_update(Ui *ui, Sys_Info *sysinfo)
|
||||||
elm_progressbar_value_set(progress, value / 100);
|
elm_progressbar_value_set(progress, value / 100);
|
||||||
elm_progressbar_unit_format_set(progress,
|
elm_progressbar_unit_format_set(progress,
|
||||||
eina_slstr_printf("%s / %s (%1.0f %)",
|
eina_slstr_printf("%s / %s (%1.0f %)",
|
||||||
evisum_size_format(sysinfo->memory.used << 10),
|
evisum_size_format(sysinfo->memory.used),
|
||||||
evisum_size_format(sysinfo->memory.total << 10),
|
evisum_size_format(sysinfo->memory.total),
|
||||||
value));
|
value));
|
||||||
|
|
||||||
progress = ui->progress_mem_cached;
|
progress = ui->progress_mem_cached;
|
||||||
|
@ -152,8 +152,8 @@ ui_tab_memory_update(Ui *ui, Sys_Info *sysinfo)
|
||||||
elm_progressbar_value_set(progress, value / 100);
|
elm_progressbar_value_set(progress, value / 100);
|
||||||
elm_progressbar_unit_format_set(progress,
|
elm_progressbar_unit_format_set(progress,
|
||||||
eina_slstr_printf("%s / %s (%1.0f %)",
|
eina_slstr_printf("%s / %s (%1.0f %)",
|
||||||
evisum_size_format(sysinfo->memory.cached << 10),
|
evisum_size_format(sysinfo->memory.cached),
|
||||||
evisum_size_format(sysinfo->memory.total << 10),
|
evisum_size_format(sysinfo->memory.total),
|
||||||
value));
|
value));
|
||||||
|
|
||||||
progress = ui->progress_mem_buffered;
|
progress = ui->progress_mem_buffered;
|
||||||
|
@ -162,8 +162,8 @@ ui_tab_memory_update(Ui *ui, Sys_Info *sysinfo)
|
||||||
elm_progressbar_value_set(progress, value / 100);
|
elm_progressbar_value_set(progress, value / 100);
|
||||||
elm_progressbar_unit_format_set(progress,
|
elm_progressbar_unit_format_set(progress,
|
||||||
eina_slstr_printf("%s / %s (%1.0f %)",
|
eina_slstr_printf("%s / %s (%1.0f %)",
|
||||||
evisum_size_format(sysinfo->memory.buffered << 10),
|
evisum_size_format(sysinfo->memory.buffered),
|
||||||
evisum_size_format(sysinfo->memory.total << 10),
|
evisum_size_format(sysinfo->memory.total),
|
||||||
value));
|
value));
|
||||||
|
|
||||||
progress = ui->progress_mem_shared;
|
progress = ui->progress_mem_shared;
|
||||||
|
@ -172,8 +172,8 @@ ui_tab_memory_update(Ui *ui, Sys_Info *sysinfo)
|
||||||
elm_progressbar_value_set(progress, value / 100);
|
elm_progressbar_value_set(progress, value / 100);
|
||||||
elm_progressbar_unit_format_set(progress,
|
elm_progressbar_unit_format_set(progress,
|
||||||
eina_slstr_printf("%s / %s (%1.0f %)",
|
eina_slstr_printf("%s / %s (%1.0f %)",
|
||||||
evisum_size_format(sysinfo->memory.shared << 10),
|
evisum_size_format(sysinfo->memory.shared),
|
||||||
evisum_size_format(sysinfo->memory.total << 10),
|
evisum_size_format(sysinfo->memory.total),
|
||||||
value));
|
value));
|
||||||
|
|
||||||
progress = ui->progress_mem_swap;
|
progress = ui->progress_mem_swap;
|
||||||
|
@ -187,8 +187,8 @@ ui_tab_memory_update(Ui *ui, Sys_Info *sysinfo)
|
||||||
elm_progressbar_value_set(progress, value / 100);
|
elm_progressbar_value_set(progress, value / 100);
|
||||||
elm_progressbar_unit_format_set(progress,
|
elm_progressbar_unit_format_set(progress,
|
||||||
eina_slstr_printf("%s / %s (%1.0f %)",
|
eina_slstr_printf("%s / %s (%1.0f %)",
|
||||||
evisum_size_format(sysinfo->memory.swap_used << 10),
|
evisum_size_format(sysinfo->memory.swap_used),
|
||||||
evisum_size_format(sysinfo->memory.swap_total << 10),
|
evisum_size_format(sysinfo->memory.swap_total),
|
||||||
value));
|
value));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue