如何监视Python程序的内存使用情况( 二 )

ThreadPoolExecutor为提交要在线程中执行的任务提供了一种方便的方法 。我们向执行程序提交两个任务——监视器和my_analysis_function(如果分析函数需要额外的参数 , 可以通过提交调用传入它们) 。对fn_thread.result()的调用将被阻塞 , 直到分析函数完成并获得其结果 , 此时我们可以通知监视器停止并获得最大内存 。try/finally模块确保了如果分析函数抛出异常 , 内存线程仍然会被终止 。
使用这种方法 , 我们可以有效地随时间对内存使用情况进行抽样 。大部分工作将在主分析线程中完成;但是每0.1秒 , 监视器线程就会被唤醒 , 进行一次内存测量 , 如果内存使用量增加就将其存储 , 然后返回睡眠状态 。
英文原文:
https://medium.com/survata-engineering-blog/monitoring-memory-usage-of-a-running-python-program-49f027e3d1ba

【如何监视Python程序的内存使用情况】


推荐阅读