Про оптимизацию
Многие начинающие разработчики думают, что зная внутреннюю реализацию (рантайм) языка, можно получить огромный выигрыш в производительности, невзирая на алгоритм работы программы.
Это не так. Общее правило гласит "сильный алгоритм лучше, чем слабый + оптимизации". Оптимизировать на уровне языка имеет смысл только если уже нет возможности улучшить алгоритм, а проблемы с производительностью есть.
На практике в большинстве случаев помогает поиск "сильного алгоритма", при слабом алгоритме байтоебство (за редким исключением) ничего не дает.
Чтобы проиллюстрировать проблему, я привел два скрина с leetcode, перый - это оптимизация от человека, который много лет изучает движок V8 и спеку JS, а второй решение той же задачи "в лоб" от меня.
Как видите, оставаясь в рамках одного и того же алгоритма, значительно усложнив запись кода и используя "технические трюки" добиться значимых результатов не получается.
Поэтому учите алгоритмы, господа. Учите алгоритмы!
Post #1817
9.22K


- 👍 123
- 🤡 11
- 🌚 8
- ❤ 5
- 👎 2