Guest User

Untitled

a guest
Apr 17th, 2018
147
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.77 KB | None | 0 0
  1. import numpy as np
  2. import netCDF4 as nc4
  3. import os
  4.  
  5. def get_used_mem():
  6.     # Quick and dirty memory check with `free`,
  7.     # without having to install e.g. psutil
  8.     return int(os.popen('free -m').readlines()[1].split()[2])
  9.  
  10. # Create test NetCDF data set
  11. size = 10000000
  12. f    = nc4.Dataset('test.nc', 'w')
  13. dim  = f.createDimension('dim', size)
  14. var  = f.createVariable('var', np.double, dimensions=('dim'))
  15. var[:] = np.random.random(size)
  16. f.close()
  17.  
  18. # Expected size
  19. mem = size*8/1024**2.
  20.  
  21. mem0 = get_used_mem()
  22.  
  23. # Re-open and read NetCDF file
  24. f    = nc4.Dataset('test.nc', 'r')
  25. var2 = f.variables['var'][:]
  26.  
  27. mem1 = get_used_mem()
  28.  
  29. # For me this prints: "expected mem = ~76, used=77"
  30. print('expected mem = ~{0:.0f} MB, used = {1:.0f} MB'.format(mem,mem1-mem0))
Add Comment
Please, Sign In to add comment