1.96K subscribers
3.92K photos
149 videos
15 files
4.07K links
Блог со звёздочкой.

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

Небольшое прикольное комьюнити: @decltype_chat_ptr_t
Автор: @insert_reference_here
Download Telegram
▪️Стабилизировали API:
🔸format_into на примитивных числовых типах (и используемый аргументом fmt::NumBuffer) для форматирования числа в переданный по ссылке буфер. Это избегает использования оверхеда от write! и может сильно повысить производительность — бенчи показывают, что новый метод по производительности сопоставим с itoa (крейт, не функция из C).
🔸str::substr_range и <[T]>::subslice_range, которые возвращают диапазон, в котором располагается переданная подстрока/подслайс. Эти методы не смотрят на содержимое самой строки, а вычисляют позицию, используя сравнения указателей, поэтому на посторонних аргументах (не лежащих внутри self) этот метод возвращает None. Документация, правда, предупреждает, что методы могут возвращать Some(0..0) или Some(self.len()..self.len()), если переданная строка/слайс пустая и лежит в памяти непосредственно до или после self.
🔸NonZero::from_str_radix. Ошибка от этого метода может возвращать из метода kind значение IntErrorKind::Zero.
🔸String::from_utf16{be, le}_{, lossy} для получения строки из UTF-16 с порядком байт, отличных от нативного.
🔸str::strip_circumfix и <[T]>::strip_circumfix, которые возвращают строку/слайс без указанных префикса и суффикса. Возвращает None, если префикс и/или суффикс не содержатся в self или если они перекрываются.
🔸Atomic<T>::{from_mut, from_mut_slice} для получения атомиков из уникальных ссылок. Уникальность ссылок гарантирует корректность этого преобразования. Также стабилизировали Atomic<T>::get_mut_slice, который является логичным продолжением уже стабильного Atomic<T>::get_mut.
4
Вы только представьте себе эту хрупкую мужественность, которой нужен антивок-мод, который делает жопу игрового персонажа более плоской.

А теперь представьте, что таких модов больше одного.
🌚15😁9🤔2
1
#prog #rust

В Rust стабилизировали тип never. Да, опять. Но на этот раз вроде окончательно, все крейты, сломанные из-за смены фоллбека или получили апдейты, или дико старые. Если всё пройдёт гладко, дойдёт до stable в красивой версии 1.100.
🔥182
Вспомнил, как однажды я почти принял свою внешность и почти поверил, что я норм, а потом вышло интервью со мной

18+ НАСТОЯЩИЙ МАТЕРИАЛ (ИНФОРМАЦИЯ) ПРОИЗВЕДЕН, РАСПРОСТРАНЕН И (ИЛИ) НАПРАВЛЕН ИНОСТРАННЫМ АГЕНТОМ АЛЕСИНЫМ ДЕНИСОМ ВЛАДИМИРОВИЧЕМ ЛИБО КАСАЕТСЯ ДЕЯТЕЛЬНОСТИ ИНОСТРАННОГО АГЕНТА АЛЕСИНА ДЕНИСА ВЛАДИМИРОВИЧА.
😁15😭3
#prog #rust #article

Replacing a Rust Enum with a 64-bit Word Made My Interpreter 17% Faster

<...> That being said, sha256_unfixed is still running 12% faster with the new value representation than with the old version, even though it's allocating a total of 3,149,052 boxed integer values in a span of about 490 ms. That seemed a bit crazy to me, but having a copying GC with a bump allocator means that we can allocate objects really fast.
👍4🫡2
Forwarded from diablogang
Юбисофт это единстванная компания, которая может выпустить игру в стиме с единственным битым экзешником в 24 киллобайта...

Теперь представьте, что если бы они это сделали в пс сторе, где нету легкого возврата денег, как в стиме.
🤣2112🤩4
6😁4🤔1
Forwarded from Добрый вечер, я диспетчер
🚬🚬🗿
😁19
#prog #rust #article

How we saved 100 terabytes of memory by optimizing 1.1.1.1’s DNS cache

Big Pineapple, the platform behind 1.1.1.1, Gateway DNS, DNS Firewall, AS112, and several other Cloudflare DNS services, stores over 250 billion DNS cache entries at any given time. At that scale, wasting a single byte per entry costs more than 250 gigabytes of memory across our fleet.

Five successive changes to how cache entries are stored in memory cut the per-entry footprint by over 50%. Across our fleet, these changes freed up roughly 100 terabytes of memory, equivalent to the amount of RAM in 130 of our Gen 13 servers. The cache also got faster. Insert throughput rose 43% and lookup latency dropped 19%, as fewer allocations and better memory locality meant we did not trade speed for space.


Большая часть изменений довольно простая.
🎉4🤔2🔥1
Forwarded from kosmonozhka
6😁6🤔1
Everyone has errands, but only rustaceans have okands

#justrustaceanthings
😁4
#prog #rust #article

How I made Rustdoc 33% faster in one week

More than any technical detail, the learnings I most want you to take away are to trust your instincts and to question assumptions. Just because a piece of code (or anything, not just code!) has been a certain way for a long time doesn’t mean that it’s optimal or even correct.
👍5