概念性想法 - 内存仅限于应用程序,但需要传递更多数据

时间:2014-01-28 13:41:39

标签: c memory-management

我的情况如下 - (因为IP权利我不能分享技术细节)

很少有单独的嵌入式应用程序作为整个项目的一部分运行。 这些应用程序中的任何一个都可以占用最大9000 MB(9GB)的内存。 我正按照新要求升级一些应用程序。 每个应用程序中缓冲区长度为32767的表很少,并且使用15KHz频率传递给网络服务器进行计算。 我需要将它变为双倍,即65534,它将以30KHz的频率传递到网络。 问题出现在这里 - 其中一个应用程序占用8094 MB(8GB +),因此表缓冲区长度加倍超出应用程序的最大大小。 因此,应用程序输出不会出现(但没有崩溃)。

我的问题是你有没有克服这个问题,你能否分享一些想法如何在这种特殊情况下进行内存管理?所有这些程序都是用cpp,perl,c和python编写的(使用VxWorks,Linux,sunsolaris OS)。

我们非常感谢您的快速回复。 感谢

1 个答案:

答案 0 :(得分:0)

这很模糊,但我会尽力回答:

如果您的程序由于任何原因需要更大的表,但不能占用更多内存,则必须更改某些内容以补偿这一点。

您没有提到为什么需要更大的表格:

  • 如果记录的长度增加,请尝试减少其数量。
  • 如果您可以存储较少数量的条目,则必须更快地发送它们,这样您就不必存储太多条目。

你可以做的就是在RAM中进行一些压缩。这取决于数据的性质,但总的来说,这可能会对您有所帮助。