Как я могу проверить вычислительную мощность компьютера пользователя с помощью Javascript?

Я сделал довольно ресурсоемкую веб-страницу с большим количеством CSS3 и Javascript. Я хочу использовать Javascript, чтобы проверить, способен ли компьютер пользователя обрабатывать сценарии. Я думаю, что возможный метод - это запустить некоторые сценарии с интенсивным использованием процессора и посмотреть, сколько времени это заняло. Тем не менее, я не знаю, как на самом деле реализовать это.

Вот веб-страница: http://leojiang.me/ (3D-куб можно просматривать только в браузерах webkit).

3 ответа

Решение

Вы можете указать, сколько времени потребуется для рендеринга фрейма или пары фреймов, которые должны вам дать, и понять, какой fps будет на клиенте.

var StartTime = new Date().getTime();
BenchMarkTestFunction(); // render frame for example
var EndTime = new Date().getTime();
var ElapsedMilliseconds = EndTime - StartTime;

var AcceptableTime = 1000; // one second
var IsGoodPerformance = ElapsedMilliseconds < AcceptableTime; // some number being acceptable performace

if(!IsGoodPerformance) {
  alert("Sorry your browser is not good enough to run this site - go somewhere else");
}

Вы можете определить, каким должен быть AcceptableTime, протестировав свой сайт на разных браузерах / устройствах и посмотрев, как он работает и каково значение ElapsedMilliseconds.

Запретив настройку localalstorage для запуска скрипта (по сути, взлома компьютера пользователя - пожалуйста, не делайте этого), я не верю, что вы можете сделать что-нибудь, кроме как найти ОС и архитектуру. Я чувствую, как будто я видел это во вспышке, но строго js не найдет скорость. Я согласен со Скоттом. Если у ваших потенциальных пользователей могут возникнуть проблемы, измените дизайн. В остальном мой i5 был полностью доволен сайтом. Удачи!

Есть способы оценить процессор или графические возможности хост-компьютера, используя JavaScript. Например, вы можете запустить набор итераций, используя эти операции, и измерить время от начала до конца.

В общем, не так просто пытаться измерить одно значение производительности ЦП, так как гораздо важнее точно определить, каковы ваши критические операции.

Например, если вас интересует определенный тип рендеринга графики, вы можете сделать пример анимации и посмотреть, сколько кадров может быть отрисовано за определенное время.

Другие вопросы по тегам