我一直在阅读Android dalvik,我很好奇如何对Dalvik进行压力测试来评估它的稳定性。我知道Dalvik是为内存和处理器受限的设备而设计的。那么,分配大量内存/增加一些CPU内核的频率,然后启动多个应用程序,这是否是一种测试稳定性的方法?
我也知道每个独立的进程都有自己的Dalvik实例。因此,另一种强调Dalvik的可能性是启动多个应用程序,这些应用程序共享Dalvik的单个进程和单个实例,并查看Dalvik的稳定性。
我想知道这两种方法是否都是衡量Dalvik稳定性的好方法。如果这两种方法都很好,那么哪种方法更好呢?
谢谢!
发布于 2013-07-05 22:42:22
很难一下子强调VM的所有部分。
您可以编写执行堆和垃圾收集器的内存压力测试、同步压力测试(如JSR-166cpu测试套件)、同时在不同内核上执行大量整数和浮点计算的java.util.concurrent压力测试。诸若此类。
诀窍是编写一个测试,它做您认为它所做的事情--数量惊人的“多核”测试由于意外的依赖关系而最终成为单线程--并且其结果可以评估其正确性。除非以某种方式将这一事实传达给用户,否则成功导致不稳定的测试是没有用的。使VM崩溃是一种非常好的方法。:-)
在同一进程中运行多个应用程序和服务在理论上是可能的,但在实践中却很少。我不认为你能以这种方式给系统带来更好的压力,因为一次只有一个应用程序在前台,如果你请求一个服务,一个线程将等待响应,而另一个线程正在运行。你最好只有一个有多个线程的应用程序,这样你就可以准确地控制每个应用程序做什么以及它们如何交互。
在你做这些之前,你需要定义“稳定性”的范围。简单地运行许多应用程序不会有任何结果,因为有数以亿计的设备运行着Dalvik的数十亿个实例,基本上没有由于VM本身而导致的故障(但由于应用程序、框架、第三方库等中的but而导致的任何故障)。自从安卓4.0 (冰激凌三明治)于两年前发布以来,Dalvik并没有太大的变化。
https://stackoverflow.com/questions/17475062
复制相似问题