我正在用我的 Mac 用 Python 为 CTF 锦标赛生成一个暴力字典。我想知道是否有办法为该过程分配更多 RAM。我的目标是让它运行得更快,所以如果有不同的方法,我愿意接受!谢谢!!
答案1
如果用户的帐户不受限制,ulimit
那么它将从可用的物理 RAM 中获取所需的内存(即使您限制它,ulimit
它仍然可以使用虚拟内存)。
如果您的程序尝试用生成的字符填充 RAM,就会出现问题。在某个时候,您将填满所有可用的 RAM,并且您的进程将开始交换到虚拟内存(或基本上交换到文件),这会降低整个 PC 的速度,因为操作系统也需要一些喘息时间,来回交换会降低整个机器的性能。
此类任务的正确方法是在内存中分配一个小缓冲区(例如 4-8 Mb)并定期将缓冲区(以附加模式)转储到文件。这将是您情况下最快的解决方案,而不会让操作系统陷入困境。