我的情况如下-(由于IP权,我无法共享技术细节)
很少有单个嵌入式应用程序作为整个项目的一部分运行。
这些应用程序均可以占用最大9000 MB(9GB)的内存。
我正在根据新要求升级某些应用程序。
在每个应用程序中,缓冲区长度为32767的表很少,这些表被传递到网络服务器以使用15KHz频率进行计算。
我需要使其倍增,即65534,它将以30KHz频率的速率传递到网络。
问题出现在这里-
这些应用程序之一占用了8094 MB(8GB +),因此表缓冲区长度加倍超出了应用程序的最大大小。
结果,没有出现应用程序输出(但没有崩溃)。
我的问题是您是否曾经克服过这样的问题,您能否分享一些想法,在这种情况下我该如何进行内存管理?所有这些程序都是用cpp,perl,c和python(使用VxWorks,Linux,sunsolaris OS)编写的。
快速答复是高度赞赏的。
谢谢
最佳答案
这是非常模糊的,但我会尽力回答这一点:
如果由于某种原因您的程序需要更大的表,但又不能占用更多的内存,则必须进行一些更改以弥补这一点。
您没有提到为什么需要更大的表:
如果记录的长度增加了,请尝试减少其数量。
如果那时您可以存储较少数量的条目,则必须更快地发送它们,这样就不必存储太多条目。
您还可以做的就是在RAM中进行一些压缩。这取决于数据的性质,但总的来说,这可能会对您有所帮助。
关于c - 概念概念-内存仅限于应用程序,但需要传递更多数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21407183/