Теория очередей для программистов?
После того, как меня несколько раз обожгли вещи, которые казались "достаточно быстрыми", но неэффективными с точки зрения производительности под нагрузкой, я начинаю думать, что мое "внутреннее чувство" может быть недостаточным при планировании емкости, и некоторые теоретические знания необходимы.
Итак, сообщество, можете ли вы указать мне хорошие ресурсы по применению теории массового обслуживания в программировании?
Что угодно - статьи, тематические исследования, книги.
Я нашел пару книг, которые пока что актуальны; Буду рад услышать ваше мнение о них, если вы знакомы
- Производительность и масштабируемость программного обеспечения: количественный подход
- Искусство анализа производительности компьютерных систем: методы экспериментального проектирования, измерения, моделирования и моделирования
- Производительность по замыслу: планирование производительности компьютера на примере
3 ответа
"Искусство анализа производительности компьютерных систем: ..." Радж Джейн отлично и Библия тестирования производительности программного обеспечения. (Но тогда я буду предвзятым, поскольку я был одним из (незначительных) внутренних рецензентов).
Однако, если вы действительно хотите понять этот материал ("Искусство..." - это скорее обзор методов и принципов), то стандарты:
- Количественные характеристики систем..., Lazowska, et. и др.: Классическое стандартное введение для планирования емкости и QNA (анализ очереди сетей) для моделирования и прогнозирования производительности целых систем.
а также
- Решения для повышения производительности: практическое руководство..., Смит и т. Д., В котором объясняется SPE (Software Performance Engineering), которая действительно является тем, чем вы пытаетесь заниматься
Я обнаружил, что оба из них легко читать и понимать, и они считаются стандартами этих двух практик.
Джайн - классика, но есть и хорошие современные вещи. Если предположить, что вы математик, то все, что написал Нил Гюнтер, - это хорошо: "Планирование мощности партизан" - его последняя разработка, которой предшествует анализ производительности компьютерной системы с помощью Perl::PDQ.
Боб Снид и я работаем над более инженерно-ориентированным, но я двигаюсь немного медленно (;-))
--dave
Я взял курс в моей программе MS под названием "Производительность компьютерных систем" - или что-то в этом роде. Два месяца курса охватывали теорию очередей. Кажется, что книга де-факто, которая используется для таких курсов, является книгой Джайна, т.е.
Искусство анализа производительности компьютерных систем: методы экспериментального проектирования, измерения, моделирования и моделирования
Я думаю, что этот текст пытается охватить слишком много, и я могу сказать, что я только получил широту темы.