2017-02-19 1 views
0

мне нужно бенчмарка этот код:Нужно ли использовать поток для проверки скорости выполнения кода в android?

public static String foo() { 

    final long startTime = System.nanoTime(); 
    try { 
     // my code here 
     final long endtime = System.nanoTime(); 
     System.out.println ("Total execution time:" + (endtime - startTime)); 
     return msg; 
    } Catch (GeneralSecurityException e) { 
     return "ERROR"; 
    } 
} 

Im собирается выполнить этот код в 2-х различных андроид устройства с QuadCore, нужно ли мне использовать нить для сравнительного анализа, как это? если я выполню его без потока, это повлияет на результат?

редактировать: Im собираюсь это нужно сравнить два алгоритма чистой скорости для моей работы колледжа

ответ

0

Вы можете использовать DDMS и Systrace, чтобы знать, что делает ваше приложение и как долго.

Для следящей маркировки вы должны убедиться, что делаете вещи наиболее быстрыми или оптимизированными способами, а не через определенное время.

Если вы вводите Threads, ваша строка кода будет выполняться параллельно/асинхронно, она будет делить ваши системные ресурсы для достижения своей цели, увеличивая количество потоков, вводит блокировку (см. ThreadPoolExecutor), в некоторых случаях лучше блокировать некоторые потоки, но иногда вам не нужно блокировать свои задачи.

Итак, если вы хотите использовать Threads, вам нужно будет проверить политику блокировки или отклонения для ThreadPool.

Лучше использовать потоки вместо одной задачи в определенный период времени.

Смежные вопросы