Можно ли сравнить браузер системы пользователя с помощью JavaScript в браузере - PullRequest
7 голосов
/ 28 июня 2011

Когда Html5 начинает набирать силу, мы видим больше экспериментов с такими вещами, как элемент видео или холст.

При проведении эксперимента с холстом, например, создания фейерверка с частицами, 1000 частиц могут хорошо работать на современной машине, но могут очень медленно работать на 3-летней машине.

Есть ли способ сравнить пользовательскую систему с динамическим изменением эксперимента с холстом (или чего-либо еще), чтобы оптимизировать его для конкретного конкретного пользователя.

РЕДАКТИРОВАТЬ: Это может быть лучшим решением: http://benchmarkjs.com/

Ответы [ 4 ]

8 голосов
/ 28 июня 2011

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

То, что вы не хотите сделать, - это заставить вашего пользователя пройти пятиминутный тест, прежде чем он сможет что-то сделать с вашей вещью.

2 голосов
/ 28 июня 2011

Должно быть довольно просто.Просто сохраняйте счетчик кадров и затраченное время в любой функции, обновляющей ваш холст, и делите первое на второе, чтобы получить FPS.Вы можете уменьшить количество частиц / образцов / и т. Д.динамически основан на FPS.Так что в основном - да, но это совершенно обычай.

2 голосов
/ 28 июня 2011

РЕДАКТИРОВАТЬ: Упс ... читать вопрос слишком быстро.Мой ответ на самом деле не относится.


Зависит от уровня точности, который вы хотите.

Если вы не хотите что-то сверхточное, это может быть возможно с небольшой работой.

То, как я это вижу;Одна из ваших самых больших проблем будет заключаться в учете различных движков JS в разных браузерах и измерении каждого в соответствии с базовым уровнем этого конкретного браузера и движка.

Например, попробуйте запустить любой тест SunSpider в IE 5.5, а затем в GoogleХром на одной машине ... Разница потрясающая.Вы должны принять это во внимание.http://www.webkit.org/perf/sunspider/sunspider.html

В идеале вы хотели бы также коррелировать оценки между различными браузерами (т. Е. Этот тест выполняется в x мс на машине A в IE 6 и в y мс на той же машине в IE 8Таким образом, я могу соотнести баллы IE 6 с баллами IE 8, используя разные средние коэффициенты).Может быть трудно получить достаточно большой объем выборки данных, чтобы сделать эффективную работу.

2 голосов
/ 28 июня 2011

FutureMark's Peacekeeper Benchmark в значительной степени уже делает это. Я думаю, что он также тестирует несколько других вещей, но он также выполняет тяжелый бенчмаркинг.

Полагаю, вы могли бы разработать какой-то эталонный тест, который измеряет частоту кадров на холсте для пользователя, а затем корректирует детали на основе этого. Это может быть достигнуто путем установки короткого интервала и рендеринга объектов на холсте, а затем с помощью Date объектов на каждой итерации для определения времени, которое требуется, и расчета средней частоты кадров на основе этого.

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