psutil 5.6.0版本与进程父级
内容提要
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。