Source code for scitex_resource.limit_ram

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# Time-stamp: "2021-09-20 21:02:04 (ywatanabe)"

import resource

from ._compat import fmt_size


[docs] def limit_ram(ram_factor): soft, hard = resource.getrlimit(resource.RLIMIT_AS) free_bytes = get_ram() * 1_024 max_val = int(min(ram_factor * free_bytes, free_bytes)) resource.setrlimit(resource.RLIMIT_AS, (max_val, hard)) print(f"\nFree RAM was limited to {fmt_size(max_val)}")
[docs] def get_ram(): with open("/proc/meminfo", "r") as mem: free_memory = 0 for i in mem: sline = i.split() if str(sline[0]) in ("MemFree:", "Buffers:", "Cached:"): free_memory += int(sline[1]) return free_memory
# Backward compatibility limit_RAM = limit_ram # Deprecated: use limit_ram instead get_RAM = get_ram # Deprecated: use get_ram instead if __name__ == "__main__": get_ram() limit_ram(0.1)