java - 测试不同代码的性能

标签 java android benchmarking

通常,当我创建一些东西时,我会对如何去做有很多不同的想法。每当我不确定哪个更好时,我宁愿自己测试一下,而不是每次都在这里发帖。我可以使用哪些方法来测试 Android 中的速度/性能/内存使用情况等?

最佳答案

虽然我个人对它们没什么经验,Performance Tips Android 文档提供了两个可能有用的用于检查基准的程序。

粗略一看,好像Traceview对于测试单个方法以及广泛的应用程序范围非常有用。

根据文档,创建跟踪、检索跟踪并对其进行处理可以按如下方式完成:

首先,找到您想要测试性能的位置。这是一个快速示例:

public void doSomething() {
    //maybe a long process that needs optimizing
}

protected void onCreate(Bundle savedInstanceState) {
   // set up stuff

   Debug.startMethodTracing("myfilename");
   doSomething();
   Debug.stopMethodTracing();
}

其次,从您的 Android 设备检索该文件(请注意,您需要写入权限才能创建此文件,因此请务必将其添加到您的 list 中)。这可以使用 Android 调试桥(位于 <Android SDK Home>/platform-tools )来完成。打开命令 shell 并运行以下命令

<Android SDK home>/platform-tools/adb pull /sdcard/myfilename.trace <Desired Location>

最后,您可以使用 Traceview 处理输出与另一个命令调用。 Traceview位于<Android SDK Home>/tools目录,因此调用如下所示:

<Android SDK Home>/tools/traceview <Desired Location>/myfilename

请注意,根据您的操作系统,您可能需要切换正斜杠和反斜杠。这是文档(上面引用的)中概述的过程的粗略概述,因此我建议在尝试实现此操作之前阅读该内容。

关于java - 测试不同代码的性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22816922/

相关文章:

java - POST 请求在 cURL 中成功,但在 Java 中失败

java - Win64 GhostPCL无法显示Unix PCL

Java:Runtime.getRuntime().exec() - 如何获取对已启动程序 JFrame 的引用?

c - 非特权用户运行 C/asm 程序会对 Linux 造成什么危害?

time - gettimeofday() C++ 不一致

java - 如何将法拉利和劳斯莱斯类别添加到我的 ArrayList<Product>

android - cordova3.1 未定义的 cordova.plugins

java - 可观察内的 RxJava 过滤器列表

android - 如何使 &lt;input type =“file” > 在 Android 和 iOS 中禁用 "take photo"选项

javascript - 最具决定性的 javascript 基准测试是什么?