gpt4 book ai didi

terminal - 打印到终端会导致 OOM(内存不足)吗?

转载 作者:行者123 更新时间:2023-12-03 19:35:59 63 4
gpt4 key购买 nike

  • 打印到终端如何影响内存使用?它会一直吃掉内存直到OOM吗?
  • 在 docker 容器中呢?
  • 操作系统如何处理打印到终端的内存?
  • 操作系统是否在某个时刻刷新终端?
  • 最佳答案

    当您调用 printf为了打印到终端,标准库将使用行缓冲并等待换行符写入输出。大小将取决于实现(可能是 8K)。见:In C, what's the size of stdout buffer? .但是这种内存使用量不会随着时间的推移而增长。
    写入时(通过 write 系统调用),缓冲区将通过 pipe 复制。 s 和 pty s 最终出现在终端仿真器中,然后将其显示在屏幕上。除了 scrollback终端仿真器的缓冲区,它不会沿此路径累积。
    大多数终端仿真器都会有回滚缓冲区的限制,默认为几千行。在此限制之后,旧行可能会被释放。一些终端模拟器提供了删除限制的选项,这意味着它可能会增长直到 OOM(我相信在 macOS 上,终端应用程序实际上会处理此事件以清除回滚缓冲区)并且终端模拟器可能会被 OOM-killer 杀死。从操作系统的角度来看,它与任何其他进程间通信没有什么不同。
    容器可能只会影响管道的创建。它仍然是调用 printf 的进程。 ,通过内核将生成的缓冲区发送到终端仿真器进程。

    关于terminal - 打印到终端会导致 OOM(内存不足)吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48816658/

    63 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com