0

我一直在阅读 Android dalvik,我很好奇如何对 Dalvik 进行压力测试以评估其稳定性。我了解 Dalvik 用于内存和处理器受限的设备。那么分配大量内存/增加一些CPU内核的频率然后启动多个应用程序是一种测试稳定性的方法吗?

我也明白每个独立的进程都有自己的 Dalvik 实例。因此,另一种强调 Dalvik 的可能性是启动多个应用程序,这些应用程序共享一个进程和一个 Dalvik 实例,看看 Dalvik 有多稳定。

我想知道这些是否是衡量 Dalvik 稳定性的好方法。如果两者都是好方法,那么哪一个是更好的测试?

谢谢!

4

1 回答 1

3

很难同时强调 VM 的每个部分。

您可以编写运行堆和垃圾收集器的内存压力测试、同步压力测试(如 JSR-166 java.util.concurrent 测试套件)、同时在不同内核上执行大量整数和浮点计算的 CPU 压力测试. 等等。

诀窍是编写一个做你认为它做的测试——数量惊人的“多核”测试由于意外的依赖关系而最终成为单线程——并且可以评估其结果的正确性。除非以某种方式将该事实传达给用户,否则成功导致不稳定的测试是没有用的。使虚拟机崩溃是一个很好的方法。:-)

在同一进程中运行多个应用程序和服务在理论上是可行的,但在实践中很少见。我认为您实际上无法通过这种方式更好地向系统施加压力,因为一次只有一个应用程序处于前台,并且如果您正在发出服务请求,则一个线程将等待响应而另一个运行。你最好只拥有一个具有多个线程的应用程序,这样你就可以准确控制每个应用程序的作用以及它们如何交互。

在你可以做任何这些之前,你需要定义“稳定性”的范围。简单地运行许多应用程序不会出现任何问题,因为有数亿台设备运行着数十亿个 Dalvik 实例,基本上没有由于 VM 本身而出现故障(但由于应用程序中的错误,框架,第三-party库等)。自从两年前发布 Android 4.0(冰淇淋三明治)以来,Dalvik 并没有太大变化。

于 2013-07-05T14:42:21.537 回答