tgoop.com/reinforced_sc/29
Last Update:
Про перфоманс приложений
Короче тема такая. Я отказываюсь верить в концепцию ботлнека. Если с производительностью жопа - то, скорее всего, нет какого-то ОДНОГО места, в которое всё утыкается и тупит. Если у вас так - то вам повезло.
Согласен, проблемы с производительностью бывают из-за тупых ошибок. Возьмём типичный кейс: там где можно сделать один запрос в базу данных - делается полсотни. Это тупо, это один из простейших ботлнеков и относительно легко лечится.
А вот как насчёт мест, где вместо одного SQL-запроса делается всего два? Фигня-фигнёй, согласитесь. Разница - пара сотен миллисекунд. Но проблемы начинаются когда таких мест в коде тысячи.
И тут за деревьями появляется лес.
Большинство медленных систем, которые я видел не содержали в себе ботлнеков как таковых. Они равномерными тонкими слоями нагружали, скажем, базу данных простыми операциями. Такой... логический DDoS. И что с этим делать кроме "пошло всё нахрен - взять и переписать" - не особо ясно.
И так со всем - лишние сетевые вызовы, лишнее чтение из файловой системы, чтение файлов целиком в строку, листы вместо хэшсетов, промежуточные абстракции.
А самое главное - начинаешь разбираться и вроде по отдельности всё получается такое, собака, нужное. Например, чтение настроек какой-нибудь фигни: ну разве ж сервис X не может одним запросом выбрать все параметры конфигурации? Ан нет, смотришь в логику и там начинается: "ой, мы выберем сначала один, потом второй, потом мы сравним их по модулю 42 и если они разные - вытянем третий". А по одному достаётся чтобы, понимаешь, логическую целостность системы не нарушать. Никому в голову не приходит что выбрать всё один раз выйдет дешевле.
И главное-то сука, код действительно приемлемо и логично выглядит. И читается неплохо. И за интерфейсами всё спрятано. Но мы всё равно делаем 3 запроса в базу, когда можно сделать один! Это же тупость.
Самое печальное, что построить простенький фреймворк с рефлекшоном вокруг настроек, который будет как-нибудь красиво, через шарповую лямбду преобразовывать всё, что хочется запросить в отдельный запрос - религия не позволяет! Сразу начнут вопить вокруг: "велосипеееед! велосипеееед!", "найди готовую либу!", "в этом коде никто не разберётся!".
Херня! Гетерогенные ботлнеки, распределённо и планомерно замедляющие систему - вот в чём никто не сможет разобраться. Ваши ёбаные пирамиды абстракций и сервисов - вот что действительно сложно. 20 строчек нестандартного кода по сравнению с этим - херня собачья.
Но нам, настоящим мужикам, не с руки читать 20 строк кода. Потому что, как мы знаем, "настоящие мужики терпят"(с).
Такие дела
BY Novikov on Soapbox
Share with your friend now:
tgoop.com/reinforced_sc/29