Вот тут очень здорово рассказывают, как работает оптимизация хвостовой рекурсии (tail call optimization / TCO). Surprise-surprise, она вполне хорошо применяется и к обычным функциям с вызовом функции и
#compiler #optimize #recursion
return в конце.#compiler #optimize #recursion
eklitzke.org
How Tail Call Optimization Works
Лучше поздно, чем никогда! Очень показательный пост про то, как чувак ускорял время загрузки GTA Online. Вот так, лёгким движением руки, неоптимально написанный код может на протяжении нескольких лет доставлять неудобства большому числу людей.
#gamedev #optimize #algorithm
#gamedev #optimize #algorithm
meh.
How I cut GTA Online loading times by 70%
GTA Online. Infamous for its slow loading times. Having picked up the game again to finish some of the newer heists I was shocked (/s) to discover that it still loads just as slow as the day it was re
В этом посте попытались разобраться, как именно телега ресайзит картинки перед отправкой. Что интересно, там нет ничего сильно хитрого, берёшь
#image #optimize
Bitmap, приправляешь Matrix, и вперёд.#image #optimize
Хороший пост про четыре основных подхода к оптимизации и грабли, на которые в них можно наступить.
#optimize #performance
#optimize #performance
Прикольно, чел хотел написать бесконечный цикл, но только чтобы оптимизирующий компилятор этого не понял. Для этого он взял частный случай великой теоремы Ферма, и сильно удивился, когда некоторые компиляторы её «опровергли» и успешно цикл оптимизировали.
#compiler #c #optimize
#compiler #c #optimize
😁2
Любопытный трюк, который может сработать в ряде случаев для оптимизации некоторых функций: переход от if-else цепочки к table lookup.
#performance #optimize
#performance #optimize
👍4
Новая история из JS и NPM мира, но на этот раз вполне себе милая, без трэша. Автор рассказывает, как ему в голову пришла прекрасная идея сократить размер всех пакетов на ~5%, сохраняя обратную совместимость. Он довёл это всё до RFC и до обсуждений с мейнтейнерами NPM, после чего копнул глубже, детальнее разобрал трейдоффы, понял, что игра не стоит свеч и закрыл RFC.
#js #compression #optimize
#js #compression #optimize
Evanhahn
My failed attempt to shrink all npm packages by 5%
It seemed like a great idea at first.
👍5
Какое-то странное just for fun безумие. Показывают, как соптимизировать проверку на високосный год до ~3 CPU инструкций. У всех же была ситуация, когда надо очень эффективно и много таких проверок делать для годов от 0 и до 102499? Ну и job security, опять же.
#just4fun #optimize
#just4fun #optimize
😁13👍3🥴3
Супер поучительная история. Чел работал над гигантской кодобазой на Java, заоптимизированной донельзя. Система работала на огромном кол-ве машин, поэтому каждый процентик экономии имел большой смысл. Наш протагонист нашёл пространство для ещё одной оптимизации: маршалинг long'ов в VarInt байты. Героически покоряя JIT и извергая ASM инструкции, он добился 4-х кратного ускорения этой небольшой функции. Раскатывает на прод - 0 эффекта. Копает, в чём дело, и, внезапно, facepalm. Никто особо не маршалит настолько больших чисел, чтобы оптимизация дала эффект. Мораль: не надо бенчмаркать на рандомных данных.
#optimize #java #benchmark
#optimize #java #benchmark
😢12😁3❤1👏1