用于基本方法时间和内存使用的小型python decorator。
shamus的Python项目详细描述
萨缪斯
用于基本方法时间和内存使用的小型python decorator。
安装
可通过PYPI获得,最新版本0.7。最新的Python2兼容版本0.5。
pip install shamus pipenv install shamus
取决于psutil>=5.0.0
。
用法
importrandomfromshamusimportshamusnames=['Steve','Michael','Tom']language=['Python','Javascript','Java','PHP']@shamus()defgenerate_coders():final_list=list()foriinxrange(800000):final_list.append({'order':i,'name':random.choice(names),'codes':random.choice(language)})returnfinal_list
输出
如果output_console设置为true,则输出如下:
-- shamus says @(04-12-2018 07:59:44 UTC)for[generate_coders] -> Memory: 242.7266 [MB] -> Time: 1.3413 [s] --
对于设置为true的输出日志,将在指定位置创建文件shamus_generate_coders.log
,格式为:
INFO:root:shamus timestamp: 04-12-2018 08:01:19 UTC CRITICAL:root:Memory: 242.7969 [MB] INFO:root:Time: 1.316 [s] INFO:root:shamus timestamp: 04-12-2018 08:01:22 UTC CRITICAL:root:Memory: 242.5469 [MB] INFO:root:Time: 1.316 [s]
选项
默认选项如下。
DEFAULT_OPTIONS={'output_console':True,'output_log':False,'output_log_dir':'','memory_warning_levels':(1,15),'time_warning_levels':(2,10)}
调用shamus装饰器时,可以覆盖任意选项并将其作为dict发送。
例如,要确保日志被创建并存储在/var/log/
目录中:
@shamus({'output_log':True,'output_log_dir: '/var/log'})defyour_method_here():pass
未指定日志位置时,将在当前目录中创建它们。忽略无效的日志位置(不存在没有写入访问的目录或目录)。
还可以发送自定义内存和时间警告级别,格式为两个正数的元组,第二个大于第一个。不符合此格式的参数也将被忽略。 内存和时间警告指定三个级别,例如级别(1,20):
ok
-低于1的一切正常(绿色终端颜色,信息记录)warning
-低于1和20的都是警告(黄色终端颜色,警告日志记录)critical
-高于20的一切都是关键的(红色终端颜色,关键日志)
python版本
0.5及以下版本与Python2.7.x兼容(不再受支持),而0.6版本与Python3.6.x兼容。 是时候升级那些python人了!
许可证
麻省理工学院