Блог существует уже больше 10 лет, за это время мои интересы не раз менялись. Статей уже накопилось изрядно, и я постарался их хотя бы сгруппировать по темам.
Если судить по статистике посещения, чаще всего сюда приходят за
- многопоточностью/concurrency, моделями памяти
- low-latency, бенчмаркингом и низкоуровневыми оптимизациями (mechanical sympathy)
- escape-анализом и скаляризацией в JVM
- тестированием конфигурации
По этим темам есть некоторое количество заметок, и ссылок на выступления на конференциях.
Кроме того меня перманентно интересует математика и психология повседневных инженерных задач, и по терверу, теории массового обслуживания, и прочей философии тоже есть сколько-то постов.
Порядок, в основном, хронологический: от старых к новым, разве что иногда я немного переставлял ссылки, чтобы статьи-продолжения оказывались рядом. Учитывайте, что некоторым статьям уже 8-10 лет: не то, что новизна, но и актуальность уже под вопросом.
Философия, психология, гуманитария
- Ironies of automation
- Примеры зачастую полезнее объяснений
- Умение понятно писать – один из самых недооцененных инженерных навыков
- What makes rule complex (for brain): mechanical sympathy applied to humans
- Рабочие заметки в помощь мозгу
- Теория разбитых окон в применении к разработке
- Массовые расстрелы и духовная практика смирения
- Тестирование и документирование
Теория массового обслуживания
- Mystery of link imbalance (metastable failure)
- Mystery of link imbalance #2: как можно починить MRU-пул
- Queueing theory for fun and practice (#1): square root staffing, Little's law
- Queueing theory for fun and practice (#2): нагрузка и время отклика
- Queueing theory for fun and practice (#3): системы с потерями
- Когда имеет смысл передавать IO в отдельный поток?
Цикл про парадокс времени ожидания
- Waiting time paradox #1: автобусы, очереди, и хэш-таблицы
- Waiting time paradox #2: почему успешный поиск в хэш-таблице дольше не успешного?
- Waiting time paradox #3: сервера и их очереди
- Waiting time paradox #4: aftermath
Тервер
Тестирование конфигурации
Доклад:
Статьи:
Escape analysis/скаляризация в JVM
Доклады:
Статьи:
- Stack allocation vs scalar replacement
- Tricky scalar replacement
- А почему бы не аллоцировать на стеке?
- Tricky scalar replacement #2
- EnumSet scalarization
- Скаляризация Map.get(…)
- Скаляризация Map.get(…) #2
- Так что насчет производительности?
- Charlie Gracie: Current state of JVM Escape Analysis and downstream optimizations
Concurrency/Java memory model/performance
Цикл про протоколы поддержания когерентности кэшей:
- Cache-coherency #1: Basics, MSI
- Cache-coherency #2: от MSI к MESI и далее к звездам (MESIF, MOESI)
- Cache-coherency #3: false sharing
Всякое-разное:
- How caching affects hashing
- Про бенчмаркинг высококонкурентного кода
- Without locks
- Highly Scalable Java
- Highly Scalable Java: 2
- Highly Scalable Java: 3
- weakCompareAndSet
- AtomicXXX.lazySet() strikes back
- AtomicXXX.lazySet() – разъяснения
- LazySet:тайные страницы JMM
- В продолжение темы: глубже в synchronized vs ReentrantLock
- Puzzler из concurrency-interest
- StackOverflow: AtomicReferenceFieldUpdater semantic
- Java puzzle System.exit and locks
- Гарантии для final-полей
- final-поля для безопасной публикации
- "False sharing induced by card table marking"
- False sharing
- False sharing: @Contended, etc…
- (Un)safe publication
- Вдогонку про публикацию
- Simple concurrent caches
- On-stack-replacement в HotSpot
- AtomicFieldUpdater optimized
- Thread affinity binding
- Stamped Lock
- Задача с собеседования
- Задача с собеседования (продолжение)
- Если вы знаете, что такое happens-before…
- Для тех, кто не решился написать ответы к предыдущему посту
- А что мы измеряем, когда измеряем "производительность CAS-а"?
- Нет никакой ложки…
- А почему компилятор не синхронизирует код за меня?
- Left-right
- Data races is pure evil
- Про ReentrantReadWriteLock
Disruptor
Доклады:
- JavaOne Moscow 2012 – слайды с презентации
- "Магия и технология высокой производительности: Disruptor и прочие фокусы" (JUG.ru, 2012)
Статьи:
- LMAX Trading
- LMAX Disruptor #1: Идеи
- LMAX Disruptor #2: Реализация
- LMAX Disruptor #3.1: эксперименты с производительностью
- Disruptor #3.1.4: Эксперименты с производительностью (продолжение)
- Disruptor #3.1.4.1: Эксперименты с производительностью – анализ
- Disruptor #3.2: Эксперименты с производительностью – update
- …и вновь продолжается бой
- Скандалы, интриги…
- …расследования
- вышел Disruptor 3.0
Комментариев нет:
Отправить комментарий