Диспетчеризация интерфейса

Диспетчеризация интерфейса

Рассмотрим вызовы методов интерфейса в C++ (GCC), Java (OpenJDK/HotSpot), C# (CLR), Go и Rust....

сентября 9, 2024 · 13 минут · German Gorelkin
Сравнение производительности с пакетом unique

Сравнение производительности с пакетом unique

Interning - это процесс хранения в памяти только одной копии значения и совместного использования уникальной ссылки на нее вместо аллокации нескольких копий и траты памяти....

сентября 6, 2024 · 2 минуты · German Gorelkin
Динамическая и статическая диспетчеризация

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

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

сентября 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