1.83K subscribers
3.24K photos
127 videos
15 files
3.52K links
Блог со звёздочкой.

Много репостов, немножко программирования.

Небольшое прикольное комьюнити: @decltype_chat_ptr_t
Автор: @insert_reference_here
Download Telegram
💯22😐53👍3😁2🎉1🤣1
Forwarded from AlexTCH
One undisputable advantage of "code copilots", they nudge developers into writing detailed understandable comments.
💯19🤔5
#meme про d4
👍6😁5🤔2🥴1
This media is not supported in your browser
VIEW IN TELEGRAM
#video #meme про... Вавилонскую башню
😁17
Штуки вроде Automapper из мира ООП решают несуществующую проблему — или, если быть точнее, проблему, собственноручно созданную программистами (точно так же, как и null в языке)
🤔4🌚1
Даже и не #meme
🥰11🤮2🤡2😐2😁1
#gamedev #article

The High Heel Problem

Или про то, какую головную боль каблуки на персонажах добавляют разработчикам игр и как разработчики решают (или не решают) возникающие в связи с этим проблемы.
🤯4👍3😐2🤔1
#meme про путешествия
😢247😭4😁3💯3
#prog #rust #article

A Rust API Inspired by Python, Powered by Serde

Или как избежать написания своего процедурного макроса, забьюзив serde.

Статья ценна хотя бы примером нетривиального десериализатора для #serde — гайдов на эту тему мало.
🔥5🤔1
The term "work-life balance" is wrong since it implies that not having a job is unbalanced.
💯17🤔9👎2
Блог*
Что лучше?
Спасибо папищекам за то, что помогли определиться с выбором
🤣3😐3🤔2🤯1
Только котиков
🔥21👍6
В будущем если вы спросите у скрепофреника - где положительные эффекты на демографию запрета на пропаганду ЛГБТ (которому уже 12 лет) - он вам ответит, что положительный эффект - это штрафы для активистов.

Подобное заявление - это настолько же убого, как от идейного коммуниста на вопрос об успехах коммунистических режимов - услышать "ну вот расстреляли n-ное число диссидентов и контрреволюционеров"

За этими запретами никогда не стояло ничего более ненависти тех, кто их поддерживал. Ничего созидательного в них не было. Никому они не помогли. Поэтому эти люди сгинут в истории, не добившись никаких результатов.
👍20🤡7💯3💩2🤔1😢1
#meme про cloud storage

Source
👍12🥰7😁4🔥1😍1
💯22🤔4
Вообще охотиться за книгами, которые давно не продают, и издательством, которое уже не существует, это какой-то уникальный просто жест, даже нацисты сжигали книги, которые существовали на тот момент, а эти вот бегают за теми, от которых уже ничего не осталось. Это какое, девятое дело об «экстремизме», если подтвердится? Я уже сбился со счёта. Я никогда не сомневаюсь в завтрашнем дне — завтра будет новое дно, и я прогнозирую, что в какой-то момент ЛВПГ признают экстремистской литературой, потому что стесняться уже нечего.
#гейновости #бомбита
🤔9💩2😁1🤡1
Блог*
А сегодня утром она по собственному желанию заплела мне косичку
Внезапно это случилось снова с другой женщиной
🤔8🥴5🤡1🤨1
Forwarded from Experimental chill
Size based vector

https://discourse.llvm.org/t/adding-a-size-based-vector-to-libc-s-unstable-abi/86306

Мы тут в Гугле экспериментировали с тем как репрезентовать вектор. Существует два способа:

1. Указатель на начало, конец и указатель на конец вместимости

2. Или указатель на начало, размер и вместимость

Оба варианта имеют свои особенности и слабые места. Первый вариант плох тем, что когда вы хотите посчитать size(), то вы вычитаете два указателя: end - begin. Вычитание указателей в численном представлении эквивалентно формуле (end_as_num - begin_as_num) / sizeof(T), где T -- тип вектора. Вот это деление на константу порой выбешивает, например, когда sizeof(T) не является степенью двойки. Компилятору приходится это деление переводить в умножение и теперь когда вы вызываете size(), то у вас откуда-то страшные конструкции вида https://godbolt.org/z/zKGz7nEE6

Но первый вариант неплох, когда вы итерируетесь и надо просто сравнивать с концом. Почему? Во втором варианте вам надо при вызове .end() загружать два регистра -- начало и размер, чтобы сложить. В итоге у вас баланс между двумя опциями

.size() выливается в умножение при sizeof(T) не степень двойки

.end() загружает два регистра

Остальные операции чуть чуть поменяются, но в основном размен происходит у этих двух.

Оказалось, что .end() чаще вызывается один раз, а .size() намного чаще в том числе и внутри циклов, потому что... Ну потому что программистам удобнее работать с числами, а не указателями. Или по каким-то ещё причинам.

В итоге мы увидели улучшение перфа всего прода на 0.12% с особенно важными серверами с исправлениями на 0.5-0.6%, о чем и поделились в discourse.llvm. Понятное дело, что кто-то слишком сильно пользовался репрезентацией вектора, но мы всех их починили и выкатили. Теперь хотим выкатить и в unstable ABI в libcxx.

Почитайте ссылку, там больше всяких анализов, в том числе и размер кодгена, и всякой ещё статистики.
🔥14