【问题标题】:Android: getElapsedCpuTime returns lesser millisecondsAndroid:getElapsedCpuTime 返回更少的毫秒数
【发布时间】:2015-08-01 06:28:10
【问题描述】:

Android 文档中关于 getElapsedCpuTime() 的说明

返回此进程运行的经过的毫秒数。

我尝试使用 getElapsedCpuTime(),以毫秒为单位的时间相当混乱。很多(4 到 5)秒后,返回的经过时间只有 2000 左右。要么它比原始毫秒慢(1 秒内 1000 毫秒),要么我在正确理解方面有问题?

我只是在测试每次单击按钮时获取当前 cpu 运行时间,代码如下:

    public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    this.setContentView(R.layout.build_data_view);

    Button btn = (Button) findViewById(R.id.refresh);
    btn.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            String elapsedCpuTime = android.os.Process.getElapsedCpuTime()
                    + "";
            ((TextView) findViewById(R.id.build_data))
                    .setText(elapsedCpuTime);

        }
    });

}

【问题讨论】:

    标签: java android time milliseconds


    【解决方案1】:

    在名称中,它认为计算的时间是该进程到目前为止所花费的 CPU 时间。如果您在半小时前开始该过程,它可能只花费了三秒钟的 CPU 时间。在 API http://developer.android.com/reference/android/os/Process.html 他们说这是进程正在运行的时间,必须是有效时间。所以只有在 CPU 上花费的时间,而不是自进程实例化以来经过的时间。

    添加一个 Asynctask 除了 while(true) 什么都不做,你会看到花费的时间线性增长,但不是 100% 的已用时间,因为你的 proc 只会有它的份额。

    【讨论】:

    猜你喜欢
    • 2011-09-09
    • 2017-12-16
    • 2022-01-07
    • 2014-08-18
    • 2011-08-02
    • 2018-01-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多