Прим. перев.: автор данного исследования — Marc Richards, Solutions Architect и DevOps-инженер — продемонстрировал потрясающую настойчивость и тщательность в тотальной оптимизации производительности веб-приложения. Получившийся материал — кладезь полезных знаний для расширения своего кругозора в области оптимизации, особенностей сетевого стека в Linux и не только, даже вне зависимости от практической заинтересованности в конечном результате автора. Приготовьтесь к по-настоящему длинному техническому путешествию с обилием терминологии, увлекательных графиков и полезных ссылок.
Рубрика «бенчмаркинг» - 2
Экстремальная настройка производительности HTTP: 1,2M API RPS на инстансе EC2 с 4 виртуальными процессорами (vCPU)
2022-04-22 в 7:01, admin, рубрики: http, linux, бенчмаркинг, Блог компании Флант, высокая производительность, Настройка Linux, оптимизация, производительность, Сетевые технологии, системное администрированиеКак одной строкой сделать 24-ядерный сервер медленнее ноутбука
2022-02-01 в 10:39, admin, рубрики: cassandra, Rust, базы данных, бенчмаркинг, Блог компании М.Видео-Эльдорадо, Клиентская оптимизация, мвидео, оптимизация программ, Параллелизм, параллельные вычисления, Серверная оптимизация, Эльдорадо
Лучше учиться на чужих ошибках, поэтому мы в М.Видео-Эльдорадо стремимся изучать зарубежный опыт. Предлагаем и вам посмотреть перевод статьи Петра Колачковского, получившего черный пояс по прокачке производительности своего железа.Читать полностью »
Если ты видишь статью, что язык Х быстрее, чем язык Y – можешь закрывать статью
2020-07-28 в 16:16, admin, рубрики: .net, open source, Андрей Акиньшин, бенчмаркинг, высокая производительность, интервью, мы обречены
Я своими гуманитарными мозгами всегда думал так — если программист знает, как сделать перфоманснее — значит надо сделать перфоманснее. Производительное решение = правильное решение. Один язык программирования может быть медленнее другого, и если это выяснится — язык программирования отправляется на помойку.
Ну и уж точно — если разработчик — специалист в области перфоманса, он будет топить за все эти вещи, даже если они неверны.
Естественно, все это чушь, но не мне вам об этом говорить. Поэтому к нам в подкаст пришел Андрей Акиньшин — разработчик и математик, кандидат физико-математических наук, мейнтейнер BenchmarkDotNet и perfolizer, автор книги Pro .NET Benchmarking и просто очень, очень крутой инженер.
Читать полностью »
Асинхронный Python-код медленнее обычного кода
2020-06-22 в 13:16, admin, рубрики: python, асинхронный код, бенчмаркинг, Блог компании RUVDS.com, высокая производительность, разработка, Разработка веб-сайтов, фреймворкБольшинство программистов понимают то, что асинхронный Python-код имеет более высокий уровень конкурентности, чем обычный синхронный код. Это даёт некоторые основания полагать, что асинхронный код способен показывать более высокий уровень производительности при решении распространённых задач вроде выдачи динамических веб-страниц или поддержки веб-API.
Но, к сожалению, Python-интерпретатор не выполняет асинхронный код быстрее синхронного.
В реалистичных условиях асинхронные веб-фреймворки показывают немного худшую пропускную способность (выраженную в запросах в секунду), чем обычные, и отличаются гораздо более сильной изменчивостью задержек.
Читать полностью »
wc на D: 712 символов без единого ветвления
2020-02-26 в 21:17, admin, рубрики: D, dlang, бенчмаркинг, Программирование, функциональное программирование, хайпПосле прочтения "Побиваем С программой в 80 строк на Хаскеле", которую я нашел на ХакерНьюс, я решил, что D может и лучше. И я написал wc на D.
Прим.пер. Я предложил вышеупомянутую статью перевести 0xd34df00d, но он предпочел сделать по мотивам свою «Побеждая C двадцатью строками Haskell: пишем свой wc». И теперь статьи множатся как перепевы «чеканной монетой».
Программа
Состоит из одного файла — 34 строки и 712 символов.
import std.stdio : writefln, File;
import std.algorithm : map, fold, splitter;
import std.range : walkLength;
import std.typecons : Yes;
import std.uni : byCodePoint;
struct Line {
size_t chars;
size_t words;
}
struct Output {
size_t lines;
size_t words;
size_t chars;
}
Output combine(Output a, Line b) pure nothrow {
return Output(a.lines + 1, a.words + b.words, a.chars + b.chars);
}
Line toLine(char[] l) pure {
return Line(l.byCodePoint.walkLength, l.splitter.walkLength);
}
void main(string[] args) {
auto f = File(args[1]);
Output o = f
.byLine(Yes.keepTerminator)
.map!(l => toLine(l))
.fold!(combine)(Output(0, 0, 0));
writefln!"%u %u %u %s"(o.lines, o.words, o.chars, args[1]);
}
Какую цену мы платим за использование async-await в языках JS – C# – Rust
2020-01-13 в 11:47, admin, рубрики: async/await, C#, javascript, node.js, Rust, zero-cost, бенчмаркинг, высокая производительность, ПрограммированиеПривет, Хабр !
Работая с Javascript / Typescript, я давно заметил, что асинхронное API работает медленней чем аналогичное синхронное, и даже знал что так должно быть. Но на последнем проекте асинхронная работа с файловой системой стала узким местом, и я озаботился замерами.
Известно, что await можно использовать только внутри функций или блоков async, а это значит, что если у вас самый нижний уровень API асинхронный, то придется использовать async/await практически везде, даже там, где оно очевидно не нужно.
К примеру, мы пишем сервисную функцию, которая достает из хранилища объект по ключу. В качестве хранилища мы можем использовать файл, БД, микросервис, то есть медленный источник с асинхронным интерфейсом. Для улучшения производительности — внутри нашей функции мы кэшируем ранее извлеченные объекты (складываем их в Map). По мере работы программы — реальных обращений к хранилищу становится все меньше, объекты отдаются из быстрого кэша, но интерфейс функции остается асинхронным!
Какую цену мне приходится платить за каждый асинхронный вызов?
Результаты тестов удручают...
Как протестировать производительность серверов: подборка из нескольких open source бенчмарков
2019-11-16 в 20:58, admin, рубрики: 1cloud, бенчмаркинг, Блог компании 1cloud.ru, производительность, Разработка веб-сайтов, Серверное администрированиеПродолжаем нашу серию материалов, посвященную тестированию производительности серверов. Сегодня поговорим о паре проверенных временем бенчмарках, которые до сих пор поддерживают и обновляют — NetPerf, HardInfo и ApacheBench.
Открытые бенчмарки для нагрузочного тестирования серверов и веб-приложений
2019-11-04 в 19:31, admin, рубрики: 1cloud, linux, бенчмаркинг, Блог компании 1cloud.ru, нагрузочное тестирование, подборка инструментов, Разработка веб-сайтовЭто — подборка утилит, составленная на основе рекомендаций резидентов Hacker News и GitHub. В список вошли: Locust, Vegeta, Slow_cooker, k6 и Siege. Ими пользуются инженеры из DICE, EA и Buoyant, а также разработчики Kubernetes и Load Impact. Расскажем об этих инструментах.
Бенчмарки для серверов на Linux: подборка открытых инструментов
2019-08-23 в 9:39, admin, рубрики: 1cloud, likwid, linux, llvm-mca, perf-tools, temci, uarch-bench, бенчмаркинг, Блог компании 1cloud.ru, Настройка Linux, Разработка под Linux, Серверное администрирование, системное администрированиеПродолжаем рассказывать об инструментах для оценки производительности CPU на Linux-машинах. Сегодня в материале: temci, uarch-bench, likwid, perf-tools и llvm-mca.
Больше бенчмарков:





