Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Вопрос по оптимизации (https://javascript.ru/forum/misc/50581-vopros-po-optimizacii.html)

petya 02.10.2014 17:26

Вопрос по оптимизации
 
Я тут вот что подумал. Движки JS сейчас оптимизируют код. В некоторых случаях это дает наверное, ощутимый профит, но иногда мне кажется, это может быть источников тормозов. В чем заключаются основные оптимизации? Я в этом не разбираюсь толком, но думаю, это, в основном, банальщина, типа, сокращение имен переменных, вынос вычислений за цикл, кэширование и прочее. То есть, 90% можно руками сделать, безо всякой оптимизации, если голову включить. А с другой стороны, этот статический анализ и оптимизации тоже ведь занимают время? В приложениях, где много динамики все постоянно анализируется, перезаписывается. Сколько времени уходит на это никто толком не знает. Сколько памяти отжирает? Жаба-опыт нам как бы намекает на это, а разрабы вторично в то же говно лезут.

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

А хорошо бы было, если бы включили режим чистой интерпретации и возможность (какую нибудь дерективу, типа "use ..."), которая бы запрещала оптимизацию. Может есть такое? Я что-то не встречал. Подскажите, если кто-нибудь знает, плз.

danik.js 02.10.2014 17:50

Ну дык на заре веб-браузеров как раз был режим "чистой интерпретации", что даже сраная летающая по сайту снежинка процессор на 146% загружала. Это тебе нужно?

danik.js 02.10.2014 17:51

Цитата:

Сообщение от petya
Тестировать код нормально, осмысленно невозможно, без бутылки.

Больше конкретики. Что именно тебе мешает?

petya 02.10.2014 17:53

Цитата:

Сообщение от danik.js
Ну дык на заре веб-браузеров как раз был режим "чистой интерпретации", что даже сраная летающая по сайту снежинка процессор на 146% загружала. Это тебе нужно?

Тут все не так однозначно. Возможно интерпретатор был криво написан (кому тогда было какое дело до снежинок), а может (что наиболее вероятно) писатели были такие. Я знаю, что не все интерпретаторы в мире тормозят, есть такие, которые делают компиляторы по скорости.

petya 02.10.2014 17:55

Цитата:

Сообщение от danik.js
Что именно тебе мешает?

Да все. Я иногда код на ноде тестирую, он при первом запуске работает медленней последующих на 90%, я не в силах это разгрести, даже не берусь.

Aetae 02.10.2014 18:00

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

P.S. Без оптимизации никуда. Покодил тут на досуге на lua - там банальная конкатенация строк в цикле приводит к аду. Совсем не та хрень о которой хочется париться используя скриптовой язык.:)

Safort 02.10.2014 18:03

petya,
так проблема в твоём коде, а не Ноде.


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