@vasIvas: смотря что вам нужно. И да, забыл сказать... преждевременные оптимизации - зло, занимайтесь оптимизациями только когда видите проблему и только при помощи профайлера. Если просто любопытно какой вариант быстрее - jsperf. Если хотите в лог выводить какая операция что делала - console.time вам хватит.
@Taraflex: scout он слишком мощный, чтобы скорость выполнения одного условия мерить.
Просто flash медленный, но его используют в той области, которая наиболее нуждается в оптимизациях. И хочешь или нет, но к этому ты придешь. И вот после этого я естественно взялся за измерение js, но при помощи node.js, который дает просто ненормальные показатели, которые меня напрягли так, что я начал выяснять и оказалось, что в браузерах подобного не наблюдается. Пока вот сейчас настроил в хроме, но это мертвенно как-то. Может знает кто-нибудь у консолей в браузере есть API чтобы показатели в одно место собирать?
@vasIvas: я сомневаюсь что вам и во flash надо было все подряд мерять... А что у вас за проекты? Я так понимаю что-то с графикой связано? Так там мерять то нечего... нужно просто делать все через GPU или стараться делать все через GPU. Собственно как и на flash. Если что-то посложнее - алгоритмы оптимизировать, профилирование то тут ни причем. Нужно так же знать некоторые особенности JIT-компилятора JS, как он инлайнит все, что оптимизирует, как оптимизирует и т.д.
Но это все нужно только для разработки каких-то графических/физиеских/аудио движков.
@Fesor: пока у меня второй месяц притирки к js идет и пока я только-только открываю для себя всю красоту этого языка. Скорость замеряю для того, чтобы знать и других причин пока нет. В as3 я не задумываясь пишу сразу оптимизировано, но в js у меня возникает жуткое желание все измерить. Наверное меня уже не переделать и переделываться я не собираюсь. И я был бы очень признателен, если бы кто-нибудь поделился ссылкой на русскоязычную статью про JIT-компилятор, потому что я даже представить не могу, чего он там инлайнит.
@vasIvas: просто забейте. Вам лучше стоит сконцентрироваться на том что же там происходит, что такое reflow/repain, уяснить как работать с асинхронными функциями (колбэки и промисы) и что такое event loop.
JS очень быстрый язык. Очень. Если мы говорим об обычных web приложениях, то тут нужно только разобраться с тем как работать с DOM. Обычно это 99% всех узких мест и лагов. Если говорить о серверном JS - то это IO и база данных.
Если же вы делаете какие-то вычисления в JS, работаете с большими массивами и т.д. то можете например посмотреть вот этот доклад: https://www.youtube.com/watch?v=tCG0aPNvkTs - я думаю что вы большую часть не поймете и думаю что вам это не пригодится скорее всего.
@Fesor: Спасибо! Видео посмотрел, большую часть, как мне кажется, понял :) А все остальное это вообще очень легко. После as3 js кажется тусклым языком и нового ничего не вносит, даже наоборот, js разработчики, когда говорят о каких-то новшествах в js и хают as3 не понимают, что в as3 это давно уже есть и единственный путь js, это приблизится к as3, пусть даже с некоторыми отличиями. Единственное чтобы я ему хотел пожелать, чтобы они от скобок отказались и было бы вообще круто.
Вообще, чем больше я пишу на js, тем больше влюбляюсь в него, он дает некую свободу, которую навязали в as3, там есть классы, но нет private, abstract классов, а здесь я могу это реализовать. Единственное, мне иногда кажется, что если я буду все это делать, то js разработчики меня не поймут, из-за того, что им покажется все это излишним.