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()的线程安全性和其他与进程相关的方法的错误。

🔎

延伸解读

新增的process parents()方法

psutil 5.6.0版本新增的process parents()方法为用户提供了获取当前进程父进程列表的便利。这一功能可以帮助开发者更好地理解进程树结构,尤其在调试和监控进程时,能够清晰地看到进程之间的关系。

Windows平台的API优化

在Windows平台上,psutil 5.6.0通过优化API加载,显著提升了性能。这意味着在处理大量进程时,用户将体验到更快的响应速度,尤其是在需要频繁调用相关API的场景中,性能提升尤为明显。

OSX上memory_maps()方法的移除

psutil在OSX上移除了memory_maps()方法,虽然这可能影响某些用户的使用,但此举是为了避免因使用未记录的Apple API而导致的错误。开发者在迁移到新版本时需注意这一变化,确保代码的兼容性。

异常处理的改进

psutil 5.6.0版本改进了异常处理机制,使得OSError和WindowsError异常包含更详细的系统调用信息。这一改进将帮助开发者更快地定位问题,提升调试效率,尤其是在复杂的系统环境中。

延伸问答

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。

🏷️

标签

➡️

继续阅读