-
Notifications
You must be signed in to change notification settings - Fork 48
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Производительность движка в некоторых случаях можно увеличить #509
Comments
Я про эту идею уже думал, она мне очень нравится. Вечером попробую изменить профит от такой экономии. И, конечно, это мажорное изменение. |
Сравниваю ревизии:
На 2000 разных BEMJSON-ах. Довольно больших, взятых с реальных проектов. Результат не очень разный до и после:
На 95 процентиле разница с 0,6 %. |
Пускай 0,6% но они есть, может не часто отключают эти режимы поэтому такая цифра, все может быть, но на мой взгляд это не правильно когда работа ради работы. |
Разумеется. Я ни в коем случае не спорю в этом вопросе. Результаты просто говорят о том, как часто в шаблонах, которые я использовал для теста, используется |
В итоге я не очень согласен с формулировкой заголовка таска. Так как не считаю, что производительность именно страдает. Но улучшить безусловно стоит. |
Всем привет. На мой взгляд движок в некоторых случаях делает ненужные вычисления, что влияет на производительность работы(сборки).
Possible Solution
Необходимо изменить порядок обработки режимов, например у себя(не на jS) я реализовал так:
Если после режима
tag
получается что html tag не нужен, тогда все режимы которые зависят от режимаtag
а их 6 штук не будут обрабатываться, зачем для них перебирать шаблоны делать в них вычисления(возможно дажеapply
иapplyNext
), если результат их работы некуда будет вывести? Это касается и режимаbem
и обработка связанных с ним режимов их 3 штуки, хотя возможно его выключают реже чемtag
. Сейчас движок обходит всегда все режимы.Ссылки на примеры:
bem = false
tag = false
The text was updated successfully, but these errors were encountered: