我正在开发一个应用程序,该应用程序最多可分叉 8 次以实现并行性。每个分叉都有一个来自分叉时原始进程的内存空间的完整副本。分叉很快,因为 Linux 在进程之间共享页面,并且仅在修改时创建新页面。实际上,我的应用程序的内存消耗增长似乎大约是 3 倍。对于用于识别会减少增长的更改的工具或技术有什么建议吗?
一种想法是查看修改页面的页面碎片。还只是对分叉进程中分配的内容进行了蛮力检查。无论哪种情况,您都可以推荐哪些技术或工具来执行该分析?
请记住,即使使用并行性,该程序也需要几个小时才能完成,并且内存占用量高达 1TB,因此检测选项有限。