【问题标题】:Is there a way to find out which method takes most time ? Eclipse Java [duplicate]有没有办法找出哪种方法最耗时? Eclipse Java [重复]
【发布时间】:2014-06-17 18:44:07
【问题描述】:

我正在为 Android 编写一个小 Javagame,想知道在 Eclipse 中是否有可能找出哪个方法花费的时间最多来执行。

【问题讨论】:

  • 使用像 JVisualVM 这样的分析器。
  • 或者只记录方法开始和结束的时间戳。

标签: java android eclipse adt timing


【解决方案1】:

这取决于你要测试什么。

如果您为 Android 开发应用程序,您应该尝试 TimingLogger 类。看看 this article 描述 TimingLogger 辅助类的用法。

一个非常好的工具是JMeter,还有一个plugin for Android

如果您不想使用外部工具,而是使用非常标准的方法来测量经过时间,则必须使用 System.nanoTime()。您不应该使用 currentTimeMillis,因为它测量挂钟时间,因为没有计算机的时钟是完美的(它们偶尔都需要更正),因此有一个进程正在运行并不断地对系统时钟进行小幅更正。更不用说闰秒修正了。

虽然经常使用 currentTimeMillis,但测量经过的时间和计时仍然是不正确的。无论如何,由于调用需要一些时间,您不应该期望正确地计时非常小的间隔。但这不应该是使用 Android 的问题。

我给你举个例子:

long startTime = System.nanoTime();

// run/call the method

long endTime = System.nanoTime();
long diff = lEndTime - lStartTime;
System.out.println("Elapsed milliseconds: " + difference/1000000);

您也可以看看这个免费库:http://jetm.void.fm/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-08-08
    • 1970-01-01
    • 2013-10-20
    • 2011-07-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多