点击上方分类专栏、进行系统性学习(文末可扫码领取资料)
1、获取命令行参数
- 通过
sys.argv
获取命令行传入的参数 test.py
内容如下:
import sys
print(sys.argv)
- 执行
python test.py haha 112 2 3
(多个参数之间空格隔开),输出结果如下:
['test.py', 'haha', '112', '2', '3']
2、查看内存占用情况
(1)查看变量占用的内存
sys.getsizeof(param)
:查看 python 运行当前范围内的变量、方法和定义的类型会占用多少memory,返回占用的字节(bytes)数。- 注意,该方法无法判断一个类占用的内存。
import sys
print("【01】字符串不同长度所占内存的对比 ======================")
str_0 = ""
print(sys.getsizeof(str_1)) #jy: 49
str_1 = "1"
print(sys.getsizeof(str_1)) #jy: 50
str_2 = "a"
print(sys.getsizeof(str_2)) #jy: 50
str_3 = "12"
print(sys.getsizeof(str_3)) #jy: 51
str_4 = "12345"
print(sys.getsizeof(str_4)) #jy: 54
print("【02】元组占用内存对比 =================================")
tp_0 = ()
print(sys.getsizeof(tp_0)) #jy: 40
tp_1 = (1)
print(sys.getsizeof(tp_1)) #jy: 28
tp_1 = (1,)
print(sys.getsizeof(tp_1)) #jy: 48
tp_2 = (1, 2)
print(sys.getsizeof(tp_2)) #jy: 56
tp_3 = ("a")
print(sys.getsizeof(tp_3)) #jy: 50
tp_4 = ("a", "b")
print(sys.getsizeof(tp_4)) #jy: 56
(2)查看py
脚本占用的内存:memory_profiler
memory_profiler
模块用来基于逐行测量代码的内存使用。该模块会让代码运行的更慢。
-
pip install memory_profiler[==0.61.0]
- 建议安装
psutil
包,会使memory_profile
会运行的快一点
-
pip install psutil[==5.8.0]
import numpy as np
import os
import psutil
import gc
from memory_profiler import profile
# jy: 使用 @profile 装饰器来标识需要追踪的函数
@profile
def test():
a=np.full(shape=(600, 700), fill_value=99.0)
return a
if __name__ == '__main__':
a=test()
# jy: 查看清理变量前的内存消耗情况;
print('A:%.2f MB' % (psutil.Process(os.getpid()).memory_info().rss / 1024 / 1024))
# jy: 清理变量, 并进行垃圾回收
del a
gc.collect()
# jy: 查看清理变量后的内存消耗情况;
print('B:%.2f MB' % (psutil.Process(os.getpid()).memory_info().rss / 1024 / 1024))
# jy: 输出结果如:
"""
Filename: /root/test.py
Line # Mem usage Increment Occurrences Line Contents
=============================================================
9 61.1 MiB 61.1 MiB 1 @profile
10 def test():
11 64.1 MiB 3.1 MiB 1 a=np.full(shape=(600, 700), fill_value=99.0)
12 64.1 MiB 0.0 MiB 1 return a
A:64.15 MB
B:61.14 MB
"""
(3)查看系统内存信息:psutil
import psutil
import os
info = psutil.virtual_memory()
print('内存使用:', psutil.Process(os.getpid()).memory_info().rss)
print('总内存:', info.total)
print('内存占比:', info.percent)
print('cpu个数:', psutil.cpu_count())
"""
内存使用: 10137600
总内存: 8101330944
内存占比: 41.1
cpu个数: 4
"""
融码一生:专注 Python、Linux、C/C++、机器学习 & 深度学习 & NLP 领域创作
下方扫码关注公众号,获取完整 PDF / 线上电子书