И очень зря, много чего там уже реализовано (диалоги кнопки, resizable, selectable, т.д. ).
Не всегда стоит изобретать велосипеды, плюс вы сразу получите поддержку тем.
Если вы ставите счетчик фпс и приводите сравнение разных браузеров, то не корректно неполностью нагружать проц. Это уже не бенч а демка и счетчик надо убрать.
Плюс ко всему у вас скорость вращения привязана к фпс, а не ко времени, что есть не гуд. Неужели нельзя было сделать cam.z_rotation = (Date.now() % 10000) / 10000 * 2 * Math.Pi; ?
Да и надо было максимально разгрузить функцию которая повторяется, чтобы не создавать там каждый раз новый таймер, достаточно сделать это всё в начале скрипта один раз, а в зацикливание оставить только преобразование координат и отрисовку. Вы же сейчас считаете также скорость создания объектов, выделения памяти, помимо собственно отрисовки и преобразования.
P.S. Сделал минимальную оптимизацию:
удалил указанную строчку, а в onload поставил setInterval(draw, 0); — результат в FF3.7 с D2D при 960 полигонах вырос до 183фпс, ядро наконец-то загружено полностью.
Резкое падение/прирост производительности в FF 3.7, могу объяснить только тем что сработал EIST, проверял раз 20, результат один.
Проверка проводилась на чистом браузере без плагинов, все приложения были переведены на первое ядро, тестируемый браузер на второе (в Хроме поставил главному процессу Affinity на второе ядро, все следующие процессы форкались с правильным Affinity). Перед каждым тестом открывалась новая пустая вкладка, закрывалась вкладка с тестом, после чего в оставшейся пустой вставлялась, скопированная заранее, ссылка на тест. Тест проводился 3 раза на каждый режим в обе стороны.
Была замечена очень странная особенность, объяснение которой не могу найти:
если тест закрывать во время того как фигура повернута на 0-40 градусов относительно старта — результат на 5-20% больше. Причем во всех браузерах. Картина повторяется если вместо закрытия вкладки просто клацать по ссылке.
Понятно что не для этого, но тут спортивный интерес.
Померятся скоростью браузеров, и длинной мегагерцев :)
Больше всего интересуют результаты нексуса с прошивкой 2.1 и 2.2. Говорят в 2.2 сильно ускорили браузер, хочется пруфа!
Это мне как раз понятно, megahertz писал что видяха тут особого значения не имеет, с чем я не согласен.
Теоретически дома фпс должен быть больше, т.к. 8800GTS, приду потестирую.
Вот лишь бы затроллить. Кто говорил WebGL?
Пусть расчеты по преобразованию вершин делают скрипт, а вот отрисовка полигонов ускоряется видеокартой, причем отрисовка ест куда больше ресурсов, чем просчет координат.
Прирост должен быть больше, просто скрипт как-то неоптимизировано кушает ресурсы, ни один из браузеров не нагружал ядро больше чем на 70%.
Не всегда стоит изобретать велосипеды, плюс вы сразу получите поддержку тем.
var test_start_time = Date.now();а при отрисовке считать:
cam.z_rotation = ( (Date.now() - test_start_time) % 10000) / 10000 * 2 * Math.Pi;Плюс ко всему у вас скорость вращения привязана к фпс, а не ко времени, что есть не гуд. Неужели нельзя было сделать
cam.z_rotation = (Date.now() % 10000) / 10000 * 2 * Math.Pi;?Было 129…
Вы же ограничиваете производительность.
Да и надо было максимально разгрузить функцию которая повторяется, чтобы не создавать там каждый раз новый таймер, достаточно сделать это всё в начале скрипта один раз, а в зацикливание оставить только преобразование координат и отрисовку. Вы же сейчас считаете также скорость создания объектов, выделения памяти, помимо собственно отрисовки и преобразования.
P.S. Сделал минимальную оптимизацию:
удалил указанную строчку, а в onload поставил setInterval(draw, 0); — результат в FF3.7 с D2D при 960 полигонах вырос до 183фпс, ядро наконец-то загружено полностью.
Щас попробую сохранить и отключить эмуляцию для IE9, stay tuned
Проверка проводилась на чистом браузере без плагинов, все приложения были переведены на первое ядро, тестируемый браузер на второе (в Хроме поставил главному процессу Affinity на второе ядро, все следующие процессы форкались с правильным Affinity). Перед каждым тестом открывалась новая пустая вкладка, закрывалась вкладка с тестом, после чего в оставшейся пустой вставлялась, скопированная заранее, ссылка на тест. Тест проводился 3 раза на каждый режим в обе стороны.
Была замечена очень странная особенность, объяснение которой не могу найти:
если тест закрывать во время того как фигура повернута на 0-40 градусов относительно старта — результат на 5-20% больше. Причем во всех браузерах. Картина повторяется если вместо закрытия вкладки просто клацать по ссылке.
Померятся скоростью браузеров, и длинной мегагерцев :)
Больше всего интересуют результаты нексуса с прошивкой 2.1 и 2.2. Говорят в 2.2 сильно ускорили браузер, хочется пруфа!
Теоретически дома фпс должен быть больше, т.к. 8800GTS, приду потестирую.
Пусть расчеты по преобразованию вершин делают скрипт, а вот отрисовка полигонов ускоряется видеокартой, причем отрисовка ест куда больше ресурсов, чем просчет координат.
Прирост должен быть больше, просто скрипт как-то неоптимизировано кушает ресурсы, ни один из браузеров не нагружал ядро больше чем на 70%.
Firefox 3.7 Alpha 4 (D2D) enabled
960 — 115
2888 — 45
Видуха слабовата, офисная лошадка, все-таки
Core i5 750 @ default Turbo Boost on,
Chrome 6.0.408.1 все ядра:
960 — 63
2888 — 40
Chrome 6.0.408.1 одно 4-ое ядро:
960 — 68 (загрузка ядра ~45%)
2888 — 40 (загрузка ядра ~55%)