2012-03-14 3 views
0

Я вижу много кода в некоторых популярных библиотек Javascript, которые часто создают новые объекты и отказаться от старых, как здесь (это из https://github.com/nefD/impact-tween): оптимизация создания объекта в JavaScript на мобильных

 
if (this.tweens.length > 0) { 
    var currentTweens = []; 
    for (var i = 0; i < this.tweens.length; i++) { 
     this.tweens[i].update(); 
     if (!this.tweens[i].complete) currentTweens.push(this.tweens[i]); 
    } 
this.tweens = currentTweens; 
Мой вопрос к экспертам является ли это препятствием для производительности сравнительно медленных мобильных приложений, созданных с использованием Javascript. Я имею в виду, что бы повторное использование существующих объектов, насколько это возможно, заметно повлияло на производительность?

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

ответ

1

Если вы можете повторно использовать как элементы DOM, так и объекты JS.

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

Презентация Estelle Weyl от Velocity EU имеет некоторые слайды на этом - http://standardista.com/velocity/#slide1

0

В общем узкое место находится в DOM. Это в 10-100 раз медленнее, чем в настольных браузерах.

Я часто вижу сайты, не имеющие мобильной версии, которые отрисовываются примерно на секунду на моем iPhone 3G. Последний имеет 400 МГц процессор и даже некоторое ускорение GPU AFAIK. Это не сетевое отставание, я говорю только о своем собственном WiFi.

Повторное использование элементов DOM может улучшить работу.

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