Commit f91765a8c68d6056af3e262a8e012878ccd23ab0

Authored by Paulo Henrique Junqueira Amorim
1 parent ac4e274c

ENH: Implemented get physical memory amount with sigar lib

Showing 1 changed file with 11 additions and 25 deletions   Show diff stats
invesalius/utils.py
@@ -20,6 +20,7 @@ import os @@ -20,6 +20,7 @@ import os
20 import platform 20 import platform
21 import subprocess 21 import subprocess
22 import re 22 import re
  23 +import sigar
23 import sys 24 import sys
24 25
25 if sys.platform == 'win32': 26 if sys.platform == 'win32':
@@ -95,12 +96,11 @@ def frange(start, end=None, inc=None): @@ -95,12 +96,11 @@ def frange(start, end=None, inc=None):
95 96
96 def PredictingMemory(qtd, x, y, p): 97 def PredictingMemory(qtd, x, y, p):
97 m = qtd * (x * y * p) 98 m = qtd * (x * y * p)
  99 + #physical_memory in Byte
  100 + physical_memory = GetPhysicalMemoryAmount()
98 101
99 if (sys.platform == 'win32'): 102 if (sys.platform == 'win32'):
100 103
101 - #physical_memory in Byte  
102 - physical_memory = GetWindowsInformation()[0]  
103 -  
104 if (platform.architecture()[0] == '32bit'): 104 if (platform.architecture()[0] == '32bit'):
105 #(314859200 = 300 MB) 105 #(314859200 = 300 MB)
106 #(26999999 = 25 MB) 106 #(26999999 = 25 MB)
@@ -133,8 +133,6 @@ def PredictingMemory(qtd, x, y, p): @@ -133,8 +133,6 @@ def PredictingMemory(qtd, x, y, p):
133 133
134 elif(sys.platform == 'linux2'): 134 elif(sys.platform == 'linux2'):
135 135
136 - physical_memory = GetLinuxInformation()[0]  
137 -  
138 if (platform.architecture()[0] == '32bit'): 136 if (platform.architecture()[0] == '32bit'):
139 # 839000000 = 800 MB 137 # 839000000 = 800 MB
140 if (m <= 839000000) and (physical_memory <= 2147483648): 138 if (m <= 839000000) and (physical_memory <= 2147483648):
@@ -171,27 +169,15 @@ def BytesConvert(bytes): @@ -171,27 +169,15 @@ def BytesConvert(bytes):
171 return str(bytes) + ' bytes' 169 return str(bytes) + ' bytes'
172 170
173 171
174 -def GetWindowsInformation():  
175 - computer = wmi.WMI()  
176 - for i in computer.Win32_ComputerSystem ():  
177 - memory = int(i.TotalPhysicalMemory)  
178 -  
179 - information = (memory,)  
180 -  
181 - return information  
182 - 172 +def GetPhysicalMemoryAmount():
  173 + """
  174 + Return physical memory amount in bytes
  175 + """
  176 + sg = sigar.open()
  177 + mem = sg.mem()
  178 + sg.close()
  179 + return int(mem.total())
183 180
184 -def GetDarwinInformation():  
185 - memory = 2.0  
186 - return (memory)  
187 181
188 182
189 -def GetLinuxInformation():  
190 - #Getting memory  
191 - with open('/proc/meminfo') as f:  
192 - for i in f:  
193 - if i.startswith('MemTotal'):  
194 - # To translate from KB to Bytes  
195 - mem = int(i.split()[1]) * 1024  
196 183
197 - return (mem,)