Разработка ждёт балета
1.64K subscribers
516 photos
5 videos
15 files
1.56K links
What I cannot create, I do not understand.

DM: @alexey_mileev
PeerLab: https://xn--r1a.website/+e2ND1tAa0lU2ZTli
Download Telegram
Вот тут очень здорово рассказывают, как работает оптимизация хвостовой рекурсии (tail call optimization / TCO). Surprise-surprise, она вполне хорошо применяется и к обычным функциям с вызовом функции и return в конце.

#compiler #optimize #recursion
Лучше поздно, чем никогда! Очень показательный пост про то, как чувак ускорял время загрузки GTA Online. Вот так, лёгким движением руки, неоптимально написанный код может на протяжении нескольких лет доставлять неудобства большому числу людей.

#gamedev #optimize #algorithm
В этом посте попытались разобраться, как именно телега ресайзит картинки перед отправкой. Что интересно, там нет ничего сильно хитрого, берёшь Bitmap, приправляешь Matrix, и вперёд.

#image #optimize
Хороший пост про четыре основных подхода к оптимизации и грабли, на которые в них можно наступить.

#optimize #performance
Прикольно, чел хотел написать бесконечный цикл, но только чтобы оптимизирующий компилятор этого не понял. Для этого он взял частный случай великой теоремы Ферма, и сильно удивился, когда некоторые компиляторы её «опровергли» и успешно цикл оптимизировали.

#compiler #c #optimize
😁2
Любопытный трюк, который может сработать в ряде случаев для оптимизации некоторых функций: переход от if-else цепочки к table lookup.

#performance #optimize
👍4
Тут собрали пачку распространённых заблуждений про оптимизирующие компиляторы. Всё про C/C++, конечно, но некоторые вещи перекладываются и на другие языке.

#compiler #optimize
Новая история из JS и NPM мира, но на этот раз вполне себе милая, без трэша. Автор рассказывает, как ему в голову пришла прекрасная идея сократить размер всех пакетов на ~5%, сохраняя обратную совместимость. Он довёл это всё до RFC и до обсуждений с мейнтейнерами NPM, после чего копнул глубже, детальнее разобрал трейдоффы, понял, что игра не стоит свеч и закрыл RFC.

#js #compression #optimize
👍5
Какое-то странное just for fun безумие. Показывают, как соптимизировать проверку на високосный год до ~3 CPU инструкций. У всех же была ситуация, когда надо очень эффективно и много таких проверок делать для годов от 0 и до 102499? Ну и job security, опять же.

#just4fun #optimize
😁13👍3🥴3
В Go действительно есть прикол, когда библиотечная функция принимает какой-то простой и привычный интерфейс, но внутри проверяет тип на какой-то более специфичный, ради оптимизации. Ну, за простоту нужно было где-то заплатить. Тут про это всё пишут подробнее.

#go #optimize #hack
Супер поучительная история. Чел работал над гигантской кодобазой на Java, заоптимизированной донельзя. Система работала на огромном кол-ве машин, поэтому каждый процентик экономии имел большой смысл. Наш протагонист нашёл пространство для ещё одной оптимизации: маршалинг long'ов в VarInt байты. Героически покоряя JIT и извергая ASM инструкции, он добился 4-х кратного ускорения этой небольшой функции. Раскатывает на прод - 0 эффекта. Копает, в чём дело, и, внезапно, facepalm. Никто особо не маршалит настолько больших чисел, чтобы оптимизация дала эффект. Мораль: не надо бенчмаркать на рандомных данных.

#optimize #java #benchmark
😢12😁31👏1