Android: getElapsedCpuTime возвращает меньше миллисекунд

В документации Android говорится о getElapsedCpuTime(), который

Возвращает прошедшие миллисекунды времени выполнения этого процесса.

Я попытался использовать getElapsedCpuTime(), время в миллисекундах довольно запутанно. Через много (от 4 до 5) секунд возвращаемое прошедшее время составляет всего 2000 с чем-то. Либо это медленнее, чем исходные миллисекунды (1000 за 1 секунду), либо у меня проблемы с правильным пониманием?

Я просто тестирую, чтобы получить текущее время процессора при каждом нажатии кнопки, вот код:

    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);

        }
    });

}

person Naheed Sultana    schedule 20.05.2015    source источник


Ответы (1)


в названии предполагается, что подсчитанное время - это время ЦП, которое процесс потратил до сих пор. Если вы запустили процесс полчаса назад, возможно, он только что потратил три секунды процессорного времени. В API http://developer.android.com/reference/android/os/Process.html они говорят, что это время, когда процесс запущен, эффективное время должно быть. Таким образом, только время, затраченное на ЦП, а не время, прошедшее с момента создания процесса.

Добавьте Asynctask, ничего не делающий, кроме while(true), и вы увидите, что затраченное время растет линейно, но не как 100% затраченного времени, потому что ваш процесс будет иметь только свою долю.

person eduyayo    schedule 20.05.2015
comment
О, я вижу. На самом деле я пытаюсь получить время, о котором вы говорите, что это не время, прошедшее с момента создания процесса. Посмотрите, можете ли вы помочь с этим вопросом. - person Naheed Sultana; 20.05.2015
comment
этот ответ выглядит хорошо, но я его не пробовал /5552125/время запуска запущенного процесса - person eduyayo; 20.05.2015