如何解决如何在资源约束环境中运行同一进程的许多实例而又不重复存储内容
我观察到每个进行音频解码的ffmpeg实例大约需要50 mb的内存。如果我记录100个电台,那就是5 GB的RAM。
现在,它们或多或少都使用相同数量的RAM,我怀疑它们一遍又一遍包含相同的信息,因为它们是作为新进程而不是派生出来的。
有办法避免这种重复吗?
我正在使用Ubuntu 20.04,x64
解决方法
现在,它们或多或少都使用相同数量的RAM,我怀疑 一遍又一遍包含相同的信息,因为它们是 作为新进程而不是分叉产生。
您是否考虑过这些进程可能使用大约相同数量的RAM,因为它们使用相似的参数执行大致相同的计算?
您是否考虑过要用来计算内存使用量的任何方式可能对所使用的内存是否唯一地归因于 vs 进程 不敏感。已经与其他进程共享了?
有办法避免这种重复吗?
已经依赖共享库的程序 在其中共享这些库的可执行代码,从而节省了内存。
当然,每个程序确实需要属于该库的任何可写数据的自己的副本,其中某些结果可能被特定的客户端程序未使用,并且程序通常具有与它们所包含的任何库不同的内存需求也使用。实际上,无论每个进程50 MB的多少在各个进程之间加起来,都将来自这些来源。可能您可以通过更改程序参数(或更改程序)来减少内存负荷,但是没有特殊的方法可以使用相同的选项和输入来运行与您现在正在运行的程序相同数量的实例,以减少他们使用的内存量。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。