用于C、C++和Python报告定时的轻量级跨语言伪仿形(墙、用户、系统、CPU、%CPU)和驻留集大小(RSS)存储器[当前页面分配和峰值使用]
TiMemor的Python项目详细描述
C/C++/Python时序+内存实用程序,包括自动定时器和临时内存计算< /H2>
TiMemory on GitHub (Source code)
TiMemory General Documentation (GitHub Pages)
TiMemory Source Code Documentation (Doxygen)
Timemory的设计目标是日常的计时和内存分析,这是源代码的标准部分。
timemory是一个非常轻量级的lightweight,cross language计时和内存 公用事业。它支持在C、C++和Python中实现,并且很容易实现。 导入到CMAKE项目中。
Timemory重量轻、速度快
对斐波那契计算的分析,确定每一个时刻 “自动计时器”增加了9微秒的平均开销(0.000009 s) 没有内存测量和16微秒(0.000016 s)的 记忆测量。此性能是针对机器和 可以通过运行 test_cxx_overhead示例。
因为timemory只显式地记录函数的信息 指定,可以安全地假设,除非将timemory插入 函数调用了> 100,000次,它不会添加超过 函数的第二个运行时。因此,有一个简单的规则 拇指:不要在非常简单的函数中插入timemory自动定时器 经常接到电话。
TimeMory并不打算取代Intel的分析工具 VTune、gprof等–相反,它通过启用 在不增加探查器开销的情况下验证时间和内存使用情况。
python项目在 C或C++。在以下任意组合中实现TimeMory自动计时器 语言将为所有语言生成一个合并报表 (提供到同一个库的每种语言链接)。然而,这是一个 时代的特征。TimeMeo可用于独立的C、C++或 python项目。
TimeMory是线程安全的,具有最小的锁定功能
所有TimeMory自动计时器引用存储在线程本地的计时器 辛格尔顿“经理”班。不建议直接创建 “管理器”实例。相反,调用静态函数 tim::manager::instance()或者如果主线程实例是 所需:tim::manager::master_instance()。一般来说 删除应用程序末尾的主实例。主人 实例是C++中的一个原始指针。唯一发生在 TimeMory正在销毁 管理器-通过在 线程退出时的C++。
Timemory支持MPI
如果一个项目使用mpi,timemory将合并来自 MPI在请求报告时进行排序。
TimeMory具有内置的计时和内存打印功能
timemory的结果可以序列化为json和json输出 可用于通过 独立的timemory-plotter或timemory.plottingpython模块
TimeMory报告临时内存使用情况
内存报告允许在 已达到内存分配的“高水位线”
可以从命令行使用timemory
unix系统提供timem可执行文件,其工作方式类似于time。打开(放) 提供所有系统,pytimem。
$ timem bash -c "for i in {1..5}; do sleep 1; done" > [bash] total execution time : 5.052 wall, 0.010 user + 0.010 system = 0.020 cpu ( 0.4%) [sec], 2.2 peak rss [MB] $ pytimem bash -c "for i in {1..5}; do sleep 1; done" > [bash] total execution time : 5.043 wall, 0.010 user + 0.020 system = 0.030 cpu ( 0.6%) [sec], 2.1 peak rss [MB]
pytimem的好处是能够定义 timemory_json_handlerCWD中处理 序列化数据(例如将数据提交到服务器)。这是一个 示例timemory_json_handler.py:
#!/usr/bin/env pythondefreceive(args,json_obj):print('\n{} received json object for "{}"\n'.format(__file__,args))print('json dictionary\n{}'.format(json_obj))
Timemory具有环境控件
- timemory_详细
- TimeMory_Disable_Timer_内存
- timemory_num_threads_env
- timemory_num_线程
- TimeMory_启用
- 蒂梅莫里ng_格式
- TimeMory_计时精度
- 定时器定时宽度
- TimeMory_计时单位
- 科学计时
- timemory_memory_格式
- 时间内存精度
- 时间内存宽度
- timemory_内存单元
- 时间记忆科学
- timemory_timing_memory_格式
- timemory_timing_memory_precision
- timemory_timing_memory_width
- TimeMory_计时存储单元
- timemory_timing_memory_scientific