【问题标题】:High-precision timer in Android JNIAndroid JNI中的高精度定时器
【发布时间】:2011-06-30 13:48:45
【问题描述】:

我正在尝试分析我的 JNI 应用程序。是否有诸如“自启动以来获取滴答声”之类的东西可以用来测量功能和/或系统?任何精度为 1/10 毫秒的东西都可以。

显然,一个完全原生的函数会更好,我不想为我试图分析的每一件事都调用一个 Java 函数,但如果这是唯一的选择,我也会这样做。

【问题讨论】:

    标签: android profiling java-native-interface


    【解决方案1】:

    clock_gettime()。您将在 android-ndk-r5b/samples/hello-neon/jni/helloneon.c 和 android-ndk-r5b/samples/native-plasma/jni/plasma.c 中看到示例代码。

    您想查找类似 CLOCK_MONOTONIC 的内容,以确保您在启动后得到滴答声,而不是挂钟。

    【讨论】:

    • 有一个建议(和一个编辑)认为 gettimeofday 可以在这里工作。它不会;问题是如果时钟改变,gettimeofday 也会改变。在这种情况下,你不会在启动后得到滴答声。 (想想夏令时吧。)
    【解决方案2】:

    看看

    System.currentTimeMillis();
    

    和/或

    System.nanoTime();
    

    我不认为其中任何一个都是自启动以来的时间,但它们都是您可以使用的毫秒时间戳。

    【讨论】:

    • 对不起,蒂姆,詹姆斯没有回答你 :)
    猜你喜欢
    • 2013-11-07
    • 1970-01-01
    • 1970-01-01
    • 2010-12-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-25
    相关资源
    最近更新 更多