我正在终端中进行冗长的 SageMath 计算,我计划使用 Shell > Export Text As... 将结果保存到磁盘... 生成的文本文件将在 10 GB 附近。
我是否需要担心 16 GB 的 RAM 不足以完成这项任务?特别是,我担心 SageMath 和终端显示都单独存储结果。SageMath 的格式需要更少的空间,但我不知道有多少。
另一个问题:如果我在计算运行时尝试使用“Shell > Export Text As...”,这会导致它停止吗?我宁愿三天后不必重新开始,只是为了找出这个问题的答案是“是的,它会停止!”
我预计计算总共需要大约两周时间。
要回答您的主要问题,终端回滚缓冲区大小仅受您机器上的 RAM (16GB) 的限制。在不知道您的流程输出什么的情况下,很难知道这是否会出现问题。
但是,与其依赖于滚动缓冲区的完整性,特别是对于以几周为单位的时间运行的进程,您可以改为将输出重定向到可以随时间检查的文件。
一种方法可能是使用SageMath 的日志记录功能。
另一种方法可能是创建一个独立的脚本,如果您对终端(STDOUT)中显示的内容感兴趣,可以将其重定向到文件:
然后数据将被重定向到文件
sage.log
,并且可以随着文件的增长进行检查,而不会影响脚本本身的执行。上述方法将是确保您保存进程的 I/O 的更好方法。对于需要数周才能完成的脚本,值得研究这些方法。