macOS 终端会话的大小上限是多少?

macOS 终端会话的大小上限是多少?

我正在终端中进行长时间的 SageMath 计算,我计划使用 Shell > 将文本导出为...将结果保存到磁盘。生成的文本文件大约在 10 GB 左右。

我是否需要担心 16 GB 的 RAM 不足以完成这项任务?特别是,我担心 SageMath 和终端显示器都分别存储结果。SageMath 的格式需要的空间较少,但我不知道有多少。

另一个问题:如果我在计算运行时尝试使用“Shell > 导出文本为...”,这会导致计算停止吗?我不想三天后重新开始,只是为了发现这个问题的答案是“是的,它会停止!”

我预计计算总共需要大约两周时间。

答案1

回答你的主要问题,终端回滚缓冲区大小仅受机器上的 RAM(16GB)限制。如果不知道你的进程输出什么,很难知道这是否会出现问题。

但是,您不必依赖滚动缓冲区的完整性,尤其是对于以周为单位运行的进程,您可以将输出重定向到可以随时间检查的文件。

一种方法可能是使用SageMath 的日志记录功能

另一种方法可能是创建独立脚本,如果您对终端(STDOUT)上显示的内容感兴趣,可以将其重定向到文件:

your_sage_script > sage.log

然后数据将被重定向到文件sage.log,并且可以在文件增长时进行检查,而不会影响脚本本身的执行。

上述方法可以更好地确保您节省进程的 I/O。对于需要数周才能完成的脚本,值得研究这些方法。

相关内容