Глубокое погружение в German Strings
Мы хотим углубиться в тонкости реализации German Strings и рассказать о том, почему оптимизации, описанные в нашем предыдущем посте, необходимы для высокопроизводительной обработки строк....
Мы хотим углубиться в тонкости реализации German Strings и рассказать о том, почему оптимизации, описанные в нашем предыдущем посте, необходимы для высокопроизводительной обработки строк....
Строки концептуально очень просты: По сути, это обычная последовательность символов, верно? Почему же тогда каждый язык программирования имеет свою собственную, немного отличающуюся реализацию строк? Оказывается, строка - это нечто большее, чем «просто последовательность символов»....
В стандартную библиотеку Go 1.23 добавили новых пакет unique. Цель этого пакета - позволить канонизировать сравниваемые(comparable) значения. Другими словами, этот пакет позволяет вам убрать дубли значений так, чтобы они указывали на единственную, каноническую, уникальную копию, при этом эффективно управляя каноническими копиями под капотом. Возможно, вы уже знакомы с этой концепцией, которая называется “interning”....
Вам не надо быть инженером, чтобы быть хорошим гонщиком, достаточно просто чувствовать машину...
Оптимизация low latency - это многоуровневая игра. Что бы успешно пройти это испытания необходимо уметь бороться с противником на каждом уровне. LEVEL 1 – ИТ-индустрия; LEVEL 2 – The Hardware; LEVEL 3 – The Kernel; LEVEL 4 – The Application....
В начале 1980-х годов стек TCP/IP стал доминирующим протоколом, оставив Telnet для более специализированных целей, наконец-то появились настройки, позволяющие оптимизировать поток трафика и избежать перегрузок и потери данных. Однако даже сейчас бывает сложно понять, когда и как использовать эти настройки. В этой статье расмотрим некоторые методы оптимизации TCP, в частности Алгоритм Нейгла, TCP_NODELAY, Delayed ACK и TCP_QUICKACK....
Некоторые мифы о производительности систем когда-то были правдой. Другие, кажется, были выдуманы из воздуха. В этой статье описаны 5 таких популярных мифов о производительности, некоторые из которых когда-то были правдой, а некоторые - никогда. Попутно я постараюсь опровергнуть их раз и навсегда. Мы перечислим их в обратном порядке распространенности, основываясь на моем личном опыте....
Разрабатывая программы, мы работаем над абстракцией системы. Оборудование может не знать о ваших функциях, переменных и данных. Оно может видеть только биты и инструкции. И все же, чтобы писать эффективные программы, программист должен знать характеристики базовой системы. К счастью, мы можем использовать и само программное обеспечение, чтобы наблюдать за поведением системы с помощью экспериментов....
В 2004 году отказ от frame pointers был связан с повышением производительности на i386 и конкуренцией с другими компиляторами. Спустя 10 лет frame pointers возвращаются в дистрибутивы Linux....
Пакет slices предоставляет функции, которые работают со слайсами любого типа. В этой статье мы обсудим, как можно использовать эти функции более эффективно, понимая, как слайсы представлены в памяти и как это влияет на сборщик мусора, а также расскажем, как мы недавно скорректировали эти функции, чтобы сделать их более предсказуемыми....