Динамическая и статическая диспетчеризация

Динамическая и статическая диспетчеризация

В этой статье объясняется разница между динамической диспетчеризацией (поздним связыванием) и статической диспетчеризацией (ранним связыванием). Мы также коснемся различий в языковой поддержке виртуальных и статических методов и того, как можно избежать использования виртуальных методов....

сентября 5, 2024 · 7 минут · German Gorelkin
Глубокое погружение в German Strings

Глубокое погружение в German Strings

Мы хотим углубиться в тонкости реализации German Strings и рассказать о том, почему оптимизации, описанные в нашем предыдущем посте, необходимы для высокопроизводительной обработки строк....

сентября 4, 2024 · 6 минут · German Gorelkin
German Strings

German Strings

Строки концептуально очень просты: По сути, это обычная последовательность символов, верно? Почему же тогда каждый язык программирования имеет свою собственную, немного отличающуюся реализацию строк? Оказывается, строка - это нечто большее, чем «просто последовательность символов»....

сентября 3, 2024 · 8 минут · German Gorelkin
Реализация interning в Go

Реализация interning в Go

В стандартную библиотеку Go 1.23 добавили новых пакет unique. Цель этого пакета - позволить канонизировать сравниваемые(comparable) значения. Другими словами, этот пакет позволяет вам убрать дубли значений так, чтобы они указывали на единственную, каноническую, уникальную копию, при этом эффективно управляя каноническими копиями под капотом. Возможно, вы уже знакомы с этой концепцией, которая называется “interning”....

августа 31, 2024 · 6 минут · German Gorelkin
Mechanical Sympathy: Понимание железа делает вас лучшим разработчиком

Mechanical Sympathy: Понимание железа делает вас лучшим разработчиком

Вам не надо быть инженером, чтобы быть хорошим гонщиком, достаточно просто чувствовать машину...

июня 28, 2024 · 8 минут · German Gorelkin
Игра в Low Latency

Игра в Low Latency

Оптимизация low latency - это многоуровневая игра. Что бы успешно пройти это испытания необходимо уметь бороться с противником на каждом уровне. LEVEL 1 – ИТ-индустрия; LEVEL 2 – The Hardware; LEVEL 3 – The Kernel; LEVEL 4 – The Application....

июня 22, 2024 · 7 минут · German Gorelkin
Оптимизация TCP. Алгоритм Нейгла и Delayed ACK

Оптимизация TCP. Алгоритм Нейгла и Delayed ACK

В начале 1980-х годов стек TCP/IP стал доминирующим протоколом, оставив Telnet для более специализированных целей, наконец-то появились настройки, позволяющие оптимизировать поток трафика и избежать перегрузок и потери данных. Однако даже сейчас бывает сложно понять, когда и как использовать эти настройки. В этой статье расмотрим некоторые методы оптимизации TCP, в частности Алгоритм Нейгла, TCP_NODELAY, Delayed ACK и TCP_QUICKACK....

июня 17, 2024 · 5 минут · German Gorelkin
Пять Мифов о Производительности Систем

Пять Мифов о Производительности Систем

Некоторые мифы о производительности систем когда-то были правдой. Другие, кажется, были выдуманы из воздуха. В этой статье описаны 5 таких популярных мифов о производительности, некоторые из которых когда-то были правдой, а некоторые - никогда. Попутно я постараюсь опровергнуть их раз и навсегда. Мы перечислим их в обратном порядке распространенности, основываясь на моем личном опыте....

июня 16, 2024 · 9 минут · German Gorelkin
Измерение производительности системы с помощью программного обеспечения

Измерение производительности системы с помощью программного обеспечения

Разрабатывая программы, мы работаем над абстракцией системы. Оборудование может не знать о ваших функциях, переменных и данных. Оно может видеть только биты и инструкции. И все же, чтобы писать эффективные программы, программист должен знать характеристики базовой системы. К счастью, мы можем использовать и само программное обеспечение, чтобы наблюдать за поведением системы с помощью экспериментов....

июня 11, 2024 · 33 минуты · German Gorelkin
Возвращение Frame Pointers

Возвращение Frame Pointers

В 2004 году отказ от frame pointers был связан с повышением производительности на i386 и конкуренцией с другими компиляторами. Спустя 10 лет frame pointers возвращаются в дистрибутивы Linux....

мая 25, 2024 · 13 минут · German Gorelkin