如何对堆栈工作做出合理的假设

时间:2015-11-28 06:19:10

标签: java android opencv embedded embedded-linux

例如,给定一个openCV应用程序,速率为60 fps的1920 * 1080 HD涉及过滤,子采样等的组合。(如果你不熟悉这个就行了......)

一般来说,如何找到应用程序的密钥内存存储?我不清楚如何找出基于什么。

1 个答案:

答案 0 :(得分:1)

  

如何对堆栈工作做出合理的假设

你不需要做出假设。它记录在JVM规范中(在抽象层面),抽象到具体的映射是常识。

  

一般来说,如何找到应用程序的密钥内存存储?

假设您询问堆栈空间使用情况:

  • 预测堆栈使用的(理论)方法是分析代码以找出所有可能的调用路径。然后,对于每个调用路径上的每个方法调用,计算单个堆栈帧使用情况(对本地变量的空间求和+参数+调用开销),以及所有调用的总和。最大堆栈使用量是呼叫路径总和的最大值。

  • 实用的方法是运行应用程序,看看它实际需要多少堆栈内存;即设置特定的堆栈大小,并查看应用程序是否与StackOverflowError崩溃。

对于堆内存,除非您的应用程序的内存使用模式简单而稳定,否则预测使用情况会更加困难。即使测量它也很棘手。

当然,这些东西很可能依赖于应用程序,依赖于平台,并且依赖于"输入"到你的申请。

我的建议:不要尝试。很难获得足够可靠的数字来使用它们。

相关问题