Поэтому я разогнал свой телефон до 1,664 ГГц и знаю, что есть приложения, которые проверяют производительность процессора вашего телефона и стрессы, но я хотел бы как-нибудь создать свой собственный. Как лучше всего заставить ваш процессор работать? Я думал просто сделать цикл for, выполняющий 1 миллион итераций выполнения какой-то трудоемкой математики... но это не сработало, потому что мой телефон сделал это за несколько миллисекунд, я думаю... я пробовал триллионы итераций... приложение зависло, но мой диспетчер задач не показывал, что процессор даже используется приложением. Обычно приложения для стресс-тестов отображаются красным цветом и говорят: процессор: 85%, оперативная память: 10 МБ ... Итак, как я могу заставить свой процессор серьезно думать?
Как я могу программно загрузить процессор моего телефона?
Ответы (3)
Чтобы скомпилировать строку регулярного выражения:
Pattern p1 = Pattern.compile("a*b"); // a simple regex
// slightly more complex regex: an attempt at validating email addresses
Pattern p2 = Pattern.compile("[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+(?:[A-Z]{2}|com|org|net|edu|gov|mil|biz|info|mobi|name|aero|asia|jobs|museum)\b");
Вам нужно запустить их в фоновых потоках:
class RegexThread extends Thread {
RegexThread() {
// Create a new, second thread
super("Regex Thread");
start(); // Start the thread
}
// This is the entry point for the second thread.
public void run() {
while(true) {
Pattern p = Pattern.compile("[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+(?:[A-Z]{2}|com|org|net|edu|gov|mil|biz|info|mobi|name|aero|asia|jobs|museum)\b");
}
}
}
class CPUStresser {
public static void main(String args[]) {
static int NUM_THREADS = 10, RUNNING_TIME = 120; // run 10 threads for 120s
for(int i = 0; i < NUM_THREADS; ++i) {
new RegexThread(); // create a new thread
}
Thread.sleep(1000 * RUNNING_TIME);
}
}
(приведенный выше код взят из здесь)
Посмотрите, как это происходит.
import java.util.regex.Pattern;
Вы можете сделать 100 потоков, если хотите, но это цикл while(true)
для каждого из потоков, который максимально загружает ЦП.
- person ; 13.09.2011
{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_
{|}~-]+)*@(?:[a-z0-9] (?:[a-z0-9-]*[a-z0-9])?\.)+(?:[AZ]{2}|com|org|net|edu|gov|mil|biz|info |mobi|name|aero|asia|jobs|museum)\b Это самая большая тарабарщина, которую я когда-либо видел! ржу не могу
- person Mohammad Adib; 13.09.2011
Я бы предложил немного другой тест, это не простые математические алгоритмы и функции. Существует множество странно выглядящих тестов, результаты которых всегда содержат все отзывы. Вы запускаете приложение, оно какое-то время работает, а потом выдает вам результат в стандартных баллах. Чем точек больше (или меньше), считается, что устройство лучше. Но что значат результаты сравнения в реальной жизни, не всегда ясно. И не все. Что касается математики, первое, что приходит на ум, это огромное количество счетных знаков после запятой и задача посчитать число «пи».
OK. Не проблема, сделаем:
Вот тест номер один — «Число Пи» — сколько времени потребуется вашему телефону, чтобы вычислить десять миллионов цифр числа Пи (3,14) (если бы кто-то произнес эту фразу сто лет назад, точно было бы сразу попал в психушку)
Когда вы чувствуете, что телефон работает медленно. Поворачиваешь/крутишь интерфейс. Но как его измерить - непонятно. Angry Birds запускается на разных устройствах в разное время — возможно, протестируйте «Angry Birds».
Думаем дальше - получить еще пару тестов, "тяжелая книга" и "большая страница".
алгоритм расчета:
- Тест "Пи"
Возьми Спид Пи. Подсчитайте десять миллионов отметок с помощью медленного алгоритма «Серия Авраама Шарпа». Повторите измерения несколько раз, возьмите среднее значение.
- Тест «Злые птички».
Взять самую первую Angry Birds (не обязательно, но эти версии не самые оптимизированные)
Измерьте время от запуска до первых звуков музыки. Выход. Сразу бегать снова и снова. Повторить несколько раз и взять среднее.
- Тест «Большая страница»
Измеряйте время загрузки тяжелых страниц сайта. Вы можете сделать это в своем любимом браузере :)
Вы можете использовать Эту ссылку (извините за кириллицу)
Эта страница поддерживается с помощью «браузера компьютеров» вместе с изображениями. Итого получается 6,5 Мб и 99 файлов (я еще на этой странице в своем сохраненном варианте небольшой звуковой файл)
Все 99 файлов загружаются на телефон. Отключите Wi-Fi и мобильный интернет (это важно!)
Страница открывается в вашем браузере. Нажмите кнопку «назад». А теперь нажмите «Вперед» и измерьте время полной загрузки страницы. И так несколько раз. Назад-вперед, назад-вперед. Как обычно, берем среднее.
Все результаты представлены в секундах.
При тестировании всех устройств, поддерживающих карты microSD, была одна и та же карта-Transcend 16 Gb, класс 10. И все данные на ней.
Ну и собственно результаты тестов для некоторых устройств РЕЗУЛЬТАТ ТЕСТА
https://play.google.com/store/apps/details?id=xcom.saplin.xOPS — приложение обрабатывает числа (целые числа и числа с плавающей запятой) в нескольких потоках (удвоенное количество ядер) и строит графики производительности и температуры процессора.
https://github.com/maxim-saplin/xOPS-Console/blob/master/Saplin.xOPS/Compute.cs — это ядро приложения.