Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   компиляция JavaScript (https://javascript.ru/forum/misc/23143-kompilyaciya-javascript.html)

Gvozd 13.11.2011 22:46

Цитата:

Сообщение от Kolyaj
Это что ж у вас за анимация такая, что банальное передвижение картинки тормозит?

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

jimm88 13.11.2011 23:39

Цитата:

Сообщение от Gvozd (Сообщение 136276)
Когда ты на с++ двигаешь картинку, то ты двигаешь только ее.
когда ты делаешь это в браузере, то ее движение затрагивает также всех потомков

У меня на atom-е простенькие 3D игры не тормозят, а между прочим одна 3D модель содержит тысячи полигонов и десятки текстур и при изменении положния модели надо тоже их всех пересчитать. И я вас уверяю, это гораздо сложнее, чем перебрать DOM.

Насчет говнокода не надо. Этим вы показываете свою некомпетентность в вопросах производительности браузеров.
Вот вам пример - http://www.bkosborne.com/jquery-feature-carousel
Демо данной галереи тормозит на atom-e. Может быть конечно эту галерею тоже писали дилетанты из кусков кода. Если вы профессионал, напишите такую штуку, чтобы она не тормозила на процессоре 600Mhz, я вам денег дам. У меня как раз такой заказ и заказчик как раз хочет, чтобы сайт работал именно на планшетах. Вот вам и статистика. Это сейчас 90% заказчиков не знаю что такое планшет с процессором 600Mhz, а через пол года у каждого второго в ТЗ будет это прописано.

observer 13.11.2011 23:46

Цитата:

Сообщение от jimm88 (Сообщение 136235)
Опишу ситуацию, чтобы было понятнее: у меня на сайте есть анимация и другие подобные эффекты, реализованные с помощью JS. Но когда я открываю сайт на старых компьютерах, или на мобильных устройствах, эффекты начинают дико тормозить...

Проверьте код, изучите проблему изнутри.

Почитайте на досуге --
http://chikuyonok.ru/2010/11/optimization-story/

jimm88 13.11.2011 23:53

Цитата:

Сообщение от DjDiablo (Сообщение 136278)
Дури много, а тормозит именно рендеринг DOM.

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

B@rmaley.e><e 14.11.2011 00:36

Цитата:

Сообщение от jimm88
Объясните тогда мне, как так получается, что моя прога на С++, которая перемещает jpeg-картинку по окну не тормозит на процессоре Atom, а ТАЖЕ САМАЯ jpeg картинка которую я перемещаю по окну с помощью JS в браузере тормозит.

Вы неправильно используете высокоуровневый API браузера.
Или показывайте код, чтобы убедиться, что проблема тут в языке, а не в том, что Вы не умеете на нём писать.

Цитата:

Сообщение от jimm88
скомпилировать JS в машинный код и запустить его в своем окне

http://ru.wikipedia.org/wiki/JIT

DjDiablo 14.11.2011 00:47

Вот небольшое демо,
в первом эксперименте цикл на 10 миллионов итераций цикла
в цикле идёт работа только с переменной.

во втором, цикл всего на 100 тысяч итераций. Но идёт работа с dom.
Почуствую разницу как говорится )
Первый эксперемент пройдёт за секунду, второй ждать несколько секунд придётся.

z=0;
    for (var i=0;i<10000000;i++){
	z=z+i;
    };

alert("конец "+z);

    z=0;
    for (var i=0;i<100000;i++){
	document.write("1");
	z=z+i;
    };

alert("конец второго эксперемента "+z);


Помоему очевидно, что работа с dom, самое слабое место в браузере, в плане скорости.

trikadin 14.11.2011 00:55

Цитата:

Сообщение от DjDiablo
второй ждать несколько секунд придётся.

У меня ff вообще его тормознул))

DreamTheater 14.11.2011 01:04

Цитата:

Сообщение от trikadin (Сообщение 136316)
У меня ff вообще его тормознул))

+1 Эпик фейл, работа с DOM самое медленное место в браузере. Когда-то у меня было учебное задание - написать XML конструктор, я тогда реализовал его при помощи стандартных DOM функций, а другой парень сделал чисто на строках и у него работало в разы быстрее.

trikadin 14.11.2011 01:06

Цитата:

Сообщение от DreamTheater
а другой парень сделал чисто на строках и у него работало в разы быстрее.

Хах) Долой responseXML, даешь responseText!

observer 14.11.2011 01:25

Цитата:

Сообщение от DjDiablo
Помоему очевидно, что работа с dom, самое слабое место в браузере, в плане скорости.

Чувак, поздравляю, ты сделал открытие! Сначала данные нужно аккумулировать, а потом записывать. Во всем виноват браузер и ДОМ-2, конечно.

П. с.: Аббревиатуры, кстати, пишутся с заглавных букв.


Часовой пояс GMT +3, время: 14:40.