1. # 012.Test_py_memory_001.py
    2. import sys
    3. n = int(sys.argv[1])
    4. @profile
    5. def r():
    6. import pandas as pd
    7. import numpy as np
    8. import time
    9. N = n
    10. data = pd.DataFrame(np.random.uniform(1, 9, (N, 38)))
    11. data[data[12] > 5]
    12. time.sleep(2)
    13. r()

    通过调用memory_profiler模块,

    1. pip install memory_profiler
    2. pip install psutil
    3. cat 012.Test_py_memory_001.py
    4. """
    5. import sys
    6. n = int(sys.argv[1])
    7. @profile
    8. def r():
    9. import pandas as pd
    10. import numpy as np
    11. import time
    12. N = n
    13. data = pd.DataFrame(np.random.uniform(1,9,(N, 38)))
    14. data[data[12] > 5]
    15. time.sleep(2)
    16. r()
    17. """
    18. py3 -m memory_profiler 012.Test_py_memory_001.py 10
    19. """
    20. Filename: 012.Test_py_memory_001.py
    21. Line # Mem usage Increment Line Contents
    22. ================================================
    23. 4 28.727 MiB 28.727 MiB @profile
    24. 5 def r():
    25. 6 69.566 MiB 40.840 MiB import pandas as pd
    26. 7 69.566 MiB 0.000 MiB import numpy as np
    27. 8 69.566 MiB 0.000 MiB import time
    28. 9 69.566 MiB 0.000 MiB N = n
    29. 10 69.566 MiB 0.000 MiB data = pd.DataFrame(np.random.uniform(1,9,(N, 38)))
    30. 11 69.805 MiB 0.238 MiB data[data[12] > 5]
    31. 12 69.805 MiB 0.000 MiB time.sleep(2)
    32. """
    33. py3 -m memory_profiler 012.Test_py_memory_001.py 100
    34. """
    35. Filename: 012.Test_py_memory_001.py
    36. Line # Mem usage Increment Line Contents
    37. ================================================
    38. 4 28.730 MiB 28.730 MiB @profile
    39. 5 def r():
    40. 6 69.570 MiB 40.840 MiB import pandas as pd
    41. 7 69.570 MiB 0.000 MiB import numpy as np
    42. 8 69.570 MiB 0.000 MiB import time
    43. 9 69.570 MiB 0.000 MiB N = n
    44. 10 69.570 MiB 0.000 MiB data = pd.DataFrame(np.random.uniform(1,9,(N, 38)))
    45. 11 69.809 MiB 0.238 MiB data[data[12] > 5]
    46. 12 69.809 MiB 0.000 MiB time.sleep(2)
    47. """
    48. py3 -m memory_profiler 012.Test_py_memory_001.py 1000
    49. """
    50. Filename: 012.Test_py_memory_001.py
    51. Line # Mem usage Increment Line Contents
    52. ================================================
    53. 4 28.730 MiB 28.730 MiB @profile
    54. 5 def r():
    55. 6 69.574 MiB 40.844 MiB import pandas as pd
    56. 7 69.574 MiB 0.000 MiB import numpy as np
    57. 8 69.574 MiB 0.000 MiB import time
    58. 9 69.574 MiB 0.000 MiB N = n
    59. 10 69.816 MiB 0.242 MiB data = pd.DataFrame(np.random.uniform(1,9,(N, 38)))
    60. 11 70.324 MiB 0.508 MiB data[data[12] > 5]
    61. 12 70.324 MiB 0.000 MiB time.sleep(2)
    62. """
    63. py3 -m memory_profiler 012.Test_py_memory_001.py 10000
    64. """
    65. Filename: 012.Test_py_memory_001.py
    66. Line # Mem usage Increment Line Contents
    67. ================================================
    68. 4 28.723 MiB 28.723 MiB @profile
    69. 5 def r():
    70. 6 69.566 MiB 40.844 MiB import pandas as pd
    71. 7 69.566 MiB 0.000 MiB import numpy as np
    72. 8 69.566 MiB 0.000 MiB import time
    73. 9 69.566 MiB 0.000 MiB N = n
    74. 10 72.641 MiB 3.074 MiB data = pd.DataFrame(np.random.uniform(1,9,(N, 38)))
    75. 11 72.922 MiB 0.281 MiB data[data[12] > 5]
    76. 12 72.922 MiB 0.000 MiB time.sleep(2)
    77. """
    78. py3 -m memory_profiler 012.Test_py_memory_001.py 100000
    79. """
    80. Filename: 012.Test_py_memory_001.py
    81. Line # Mem usage Increment Line Contents
    82. ================================================
    83. 4 28.727 MiB 28.727 MiB @profile
    84. 5 def r():
    85. 6 69.574 MiB 40.848 MiB import pandas as pd
    86. 7 69.574 MiB 0.000 MiB import numpy as np
    87. 8 69.574 MiB 0.000 MiB import time
    88. 9 69.574 MiB 0.000 MiB N = n
    89. 10 98.691 MiB 29.117 MiB data = pd.DataFrame(np.random.uniform(1,9,(N, 38)))
    90. 11 100.473 MiB 1.781 MiB data[data[12] > 5]
    91. 12 100.473 MiB 0.000 MiB time.sleep(2)
    92. """
    93. py3 -m memory_profiler 012.Test_py_memory_001.py 1000000
    94. """
    95. Filename: 012.Test_py_memory_001.py
    96. Line # Mem usage Increment Line Contents
    97. ================================================
    98. 4 28.723 MiB 28.723 MiB @profile
    99. 5 def r():
    100. 6 69.574 MiB 40.852 MiB import pandas as pd
    101. 7 69.574 MiB 0.000 MiB import numpy as np
    102. 8 69.574 MiB 0.000 MiB import time
    103. 9 69.574 MiB 0.000 MiB N = n
    104. 10 359.598 MiB 290.023 MiB data = pd.DataFrame(np.random.uniform(1,9,(N, 38)))
    105. 11 369.070 MiB 9.473 MiB data[data[12] > 5]
    106. 12 369.070 MiB 0.000 MiB time.sleep(2)
    107. """