Daniel Connelly Asked: 2019-10-17 20:45:06 +0800 CST2019-10-17 20:45:06 +0800 CST 2019-10-17 20:45:06 +0800 CST 更少的线程或更多的交换空间? 772 我cmds在 Python 中使用线程运行多个终端(不要取笑我,这是有原因的)。 这些cmds有时会压倒可用内存,我不得不增加交换大小以避免内存不足 (OOA) 错误。 我的问题是:通常,我的(或任何)程序会通过减少线程和增加交换空间或增加线程和减少交换空间来更快地完成(或者是否有“最佳位置”)?. python swap 1 个回答 Voted Best Answer GordonAitchJay 2019-10-19T21:29:58+08:002019-10-19T21:29:58+08:00 这些 cmd 有时会压倒可用内存,我不得不增加交换大小以避免内存不足 (OOA) 错误。 用完交换空间(或不得不增加交换大小)告诉我你一次运行了太多进程。 我的问题是:一般来说,我的(或任何)程序是否会通过减少线程和增加交换空间或增加线程和减少交换空间来更快地完成(或者是否有“最佳位置”)? 这两个选项真的没有意义。如果您增加线程数(因此需要 RAM)并同时减小交换大小,您可能会耗尽内存(存储在 RAM 和交换中),导致进程被操作系统终止并/ 或内存分配失败。 内存不足会导致操作系统通过将内存写入磁盘(交换空间)来释放一些内存。这是一项相对耗时的任务,因此您确实希望避免使用比 RAM 中可用的内存更多的内存。 我会限制进程的数量,这样你就不会用完 RAM,以避免将内存写入磁盘。psutil.virtual_memory().available在开始另一个进程之前检查可用内存。在开始另一个之前拥有 1GB 似乎是合理的。 您应该进行一些基准测试 - 计算完成各种不同源文件所需的时间,最大进程和最小内存的值不同,然后再开始另一个。
用完交换空间(或不得不增加交换大小)告诉我你一次运行了太多进程。
这两个选项真的没有意义。如果您增加线程数(因此需要 RAM)并同时减小交换大小,您可能会耗尽内存(存储在 RAM 和交换中),导致进程被操作系统终止并/ 或内存分配失败。
内存不足会导致操作系统通过将内存写入磁盘(交换空间)来释放一些内存。这是一项相对耗时的任务,因此您确实希望避免使用比 RAM 中可用的内存更多的内存。
我会限制进程的数量,这样你就不会用完 RAM,以避免将内存写入磁盘。
psutil.virtual_memory().available
在开始另一个进程之前检查可用内存。在开始另一个之前拥有 1GB 似乎是合理的。您应该进行一些基准测试 - 计算完成各种不同源文件所需的时间,最大进程和最小内存的值不同,然后再开始另一个。