Previous Entry Share Next Entry
2016-01

JS performance ололо

1. Перформанс node.js 0.10 и 0.11 отличается в 16 раз. (0.11 быстрее)

2. Каждый следующий перезапуск теста проходит медленнее
(То же справедливо и для браузеров)

3. В целом, у разного кода на разных браузерах перформанс fucking random. Особо радует то, что он нелинейно зависит от размера входных данных, даже не монотонно, иногда различается в 3-5 раз.

4. В патологических случаях бывает разница и в 40 раз.

5. Нет, сейчас нету браузера, который быстрее. Есть только либы, заточенные под разные браузеры. Можно сделать чтобы IE всех рвал в 10 раз, можно FF, можно Chrome, как угодно.

(Я не знаю, что делать с этим знанием)

This entry was originally posted at http://wizzard.dreamwidth.org/379565.html. It has comment count unavailable comments. Please comment there using OpenID.

  • 1
justy_tylor July 4th, 2014
Дойдёт до маразма - код будут писать под emscripten, а для него наплодят кучу драйверов ("драйвер компенсации глюков хрома", "драйвер компенсации глюков ие11", ...).

_winnie July 4th, 2014
1) Можно выбирать из набора функций наилучшую для этого браузера
2) Для большинства проектов такая сложность будет в очень малом количестве мест.
Для остальных - нужно заранее запастить валерьянкой, и быть готовым что тщательно вылизаный по перфомансу код будет устаревать за полгода.


Выводы из этого знания простые - не пытаться по дефолту перекладывать обработку больших данных с C#/C++/Java сервера на клиент.

wizzard0 July 4th, 2014
Я напомню, что у нас "по условию задачи" aka unique selling point - untrusted сервер ;-)

А так, конечно, да.

Насчет Java (на клиенте), Dalvik столь же непредсказуем, и медленнее JS во многих случаях ;)

dmih July 4th, 2014
6. А польза от node.js есть?

anonim_legion July 4th, 2014
В резюме вписать, например.

jakobz July 4th, 2014
Всё идет к тому, что в большом классе приложений большая часть кода - на клиенте. Плюс всякие компиляторы LESS или тот же server-side рендеринг в react - тоже на JS. Короче JS на сервере в любом случае будет, никак без него.

Дальше, если писать, скажем, контроллеры и доступ к БД на C#, а остальное - на JS, получаем что на C# большая часть кода - это гемморой про трансляцию чего-то в JSON и назад.

Короче вопрос не в том, есть ли польза от node.js, а в том, надо ли на сервере еще что-то кроме JS.

dmih July 4th, 2014
На IIS серверные компоненты на JS можно было писать уже лет 15, это ASP не к столу будет упомянуто. Всякие XHttpRequest/JS на клиенте уже тоже использовались вовсю. И никакой особой синергии от всего этого хозяйства не наблюдалось впомине, всё-таки, JS изначально достаточно слабый язык.

wizzard0 July 4th, 2014
Давай будем честными? Нода всё-таки гавнище.

Я, например, ожидаю, что MSFT допилит IE, чтобы он жрал хотя бы TypeScript напрямую, и оптимизированно его компилил.

Как по мне, польза от ноды только в том, что можно запустить React на сервере.

thedeemon July 5th, 2014
Взять, как Шабанов, Ur/Web и забыть про JS вообще.

109 July 6th, 2014
слово гемморой пишется не так.

var json = JsonConvert.Serialize(data);

то же самое с десериализацией.

jakobz July 4th, 2014
Еще помножить на то, что производительность железки на клиенте может также отличатся минимум на порядок.

Впрочем, я смотрю на IE8: юзабельно там - сойдет везде.

wizzard0 July 4th, 2014
Нет, IE это хуйня, можно ориентироваться на 10+, больше всего проблем доставляет Android.

Хотя надо отметить, что у разных сайтов аудитория очень и очень различается...

Edited at 2014-07-04 06:27 pm (UTC)

jakobz July 4th, 2014
Ну, у меня внутреннее приложение, и прилично товарищей с IE7 заходит. Я хз, троллят они что-ли специально :)

kurumpa July 5th, 2014
А что андроид? Хром мобайл таки сильно проблем создает? Или не у всех хром?

mr_aleph July 5th, 2014
> (Я не знаю, что делать с этим знанием)

баги надо файлить с этим знанием.

  • 1
?

Log in

No account? Create an account