psutil 5.6.0版本与进程父级

💡 原文英文,约800词,阅读约需3分钟。
📝

内容提要

psutil 5.6.0版本引入了多个重要改进,包括新增的process parents()方法,Windows平台上API加载优化,以及进程挂起/恢复方法的改进。同时,OSX上移除了memory_maps()方法以避免错误,并改进了异常处理以提供更清晰的错误信息。

🎯

关键要点

  • psutil 5.6.0版本新增了process parents()方法,用于返回当前进程的父进程列表。
  • Windows平台上优化了API加载,某些动态加载的DLL库现在在启动时只加载一次,提高了性能。
  • 改进了进程的挂起和恢复方法,采用了未公开的NtSuspendProcess和NtResumeProcess API。
  • 修复了SE DEBUG模式的问题,允许Python进程在启动时设置该模式,以减少对低PID进程的AccessDenied异常。
  • 在OSX上移除了memory_maps()方法,以避免因使用未记录的Apple API而导致的错误。
  • 改进了异常处理,OSError和WindowsError异常现在会包含导致错误的系统调用信息。
  • 修复了一些重要的bug,包括process_iter()的线程安全性和其他与进程相关的方法的错误。

延伸问答

psutil 5.6.0版本新增了哪些重要功能?

psutil 5.6.0版本新增了process parents()方法、优化了Windows平台的API加载、改进了进程挂起/恢复方法,并移除了OSX上的memory_maps()方法。

process parents()方法的作用是什么?

process parents()方法用于返回当前进程的父进程列表,如果没有已知的父进程,则返回空列表。

Windows平台上对API加载的优化有什么影响?

优化后,某些动态加载的DLL库在启动时只加载一次,从而显著提高了不同函数和方法的性能。

psutil 5.6.0版本如何改进了异常处理?

改进后,OSError和WindowsError异常将包含导致错误的系统调用信息,提供更清晰的错误信息。

为什么在OSX上移除了memory_maps()方法?

因为memory_maps()方法基于未记录的Apple API,可能导致错误和段错误,移除后避免了这些问题。

psutil 5.6.0版本修复了哪些重要的bug?

修复了process_iter()的线程安全性、OSX上Process cmdline()和environ()可能错误引发OSError等多个重要bug。

➡️

继续阅读