压力测试Android Dalvik

压力测试Android Dalvik,android,performance,dalvik,stress-testing,Android,Performance,Dalvik,Stress Testing,我一直在阅读安卓dalvik,我很好奇人们会如何对dalvik进行压力测试以评估其稳定性。我知道Dalvik是为内存和处理器受限的设备设计的。那么,分配大量内存/增加某些CPU内核的频率,然后启动多个应用程序是否是测试稳定性的一种方法呢 我也知道每个独立的进程都有自己的Dalvik实例。因此,强调Dalvik的另一种可能性是启动多个应用程序,共享一个进程和一个Dalvik实例,看看Dalvik有多稳定 我想知道这两种方法中的任何一种是否是衡量Dalvik稳定性的好方法。如果这两种方法都是好的,那

我一直在阅读安卓dalvik,我很好奇人们会如何对dalvik进行压力测试以评估其稳定性。我知道Dalvik是为内存和处理器受限的设备设计的。那么,分配大量内存/增加某些CPU内核的频率,然后启动多个应用程序是否是测试稳定性的一种方法呢

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

我想知道这两种方法中的任何一种是否是衡量Dalvik稳定性的好方法。如果这两种方法都是好的,那么哪一种方法是更好的测试方法


谢谢

很难同时强调虚拟机的每个部分

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

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

在同一进程中运行多个应用程序和服务在理论上是可能的,但在实践中很少。我不认为你真的能够通过这种方式更好地强调系统,因为一次只有一个应用程序在前台,如果你正在请求服务,一个线程将等待响应,而另一个线程将运行。你最好只使用一个应用程序和多个线程,这样你就可以准确地控制每个应用程序的功能和交互方式


在执行任何操作之前,您需要定义“稳定性”的范围。简单地运行许多应用程序不会产生任何效果,因为有数亿台设备运行着数十亿个Dalvik实例,基本上没有因VM本身而导致的故障(但任何数量的设备都是由于应用程序、框架、第三方库等中的错误)。自从安卓4.0(冰激凌三明治)两年前推出以来,Dalvik没有太大变化。

很难同时强调虚拟机的每个部分

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

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

在同一进程中运行多个应用程序和服务在理论上是可能的,但在实践中很少。我不认为你真的能够通过这种方式更好地强调系统,因为一次只有一个应用程序在前台,如果你正在请求服务,一个线程将等待响应,而另一个线程将运行。你最好只使用一个应用程序和多个线程,这样你就可以准确地控制每个应用程序的功能和交互方式

在执行任何操作之前,您需要定义“稳定性”的范围。简单地运行许多应用程序不会产生任何效果,因为有数亿台设备运行着数十亿个Dalvik实例,基本上没有因VM本身而导致的故障(但任何数量的设备都是由于应用程序、框架、第三方库等中的错误)。自从两年前安卓4.0(冰激凌三明治)发布以来,Dalvik没有太大变化