REINFORCED_SC Telegram 29
Про перфоманс приложений

Короче тема такая. Я отказываюсь верить в концепцию ботлнека. Если с производительностью жопа - то, скорее всего, нет какого-то ОДНОГО места, в которое всё утыкается и тупит. Если у вас так - то вам повезло.

Согласен, проблемы с производительностью бывают из-за тупых ошибок. Возьмём типичный кейс: там где можно сделать один запрос в базу данных - делается полсотни. Это тупо, это один из простейших ботлнеков и относительно легко лечится.

А вот как насчёт мест, где вместо одного SQL-запроса делается всего два? Фигня-фигнёй, согласитесь. Разница - пара сотен миллисекунд. Но проблемы начинаются когда таких мест в коде тысячи.

И тут за деревьями появляется лес.

Большинство медленных систем, которые я видел не содержали в себе ботлнеков как таковых. Они равномерными тонкими слоями нагружали, скажем, базу данных простыми операциями. Такой... логический DDoS. И что с этим делать кроме "пошло всё нахрен - взять и переписать" - не особо ясно.

И так со всем - лишние сетевые вызовы, лишнее чтение из файловой системы, чтение файлов целиком в строку, листы вместо хэшсетов, промежуточные абстракции.

А самое главное - начинаешь разбираться и вроде по отдельности всё получается такое, собака, нужное. Например, чтение настроек какой-нибудь фигни: ну разве ж сервис X не может одним запросом выбрать все параметры конфигурации? Ан нет, смотришь в логику и там начинается: "ой, мы выберем сначала один, потом второй, потом мы сравним их по модулю 42 и если они разные - вытянем третий". А по одному достаётся чтобы, понимаешь, логическую целостность системы не нарушать. Никому в голову не приходит что выбрать всё один раз выйдет дешевле.

И главное-то сука, код действительно приемлемо и логично выглядит. И читается неплохо. И за интерфейсами всё спрятано. Но мы всё равно делаем 3 запроса в базу, когда можно сделать один! Это же тупость.

Самое печальное, что построить простенький фреймворк с рефлекшоном вокруг настроек, который будет как-нибудь красиво, через шарповую лямбду преобразовывать всё, что хочется запросить в отдельный запрос - религия не позволяет! Сразу начнут вопить вокруг: "велосипеееед! велосипеееед!", "найди готовую либу!", "в этом коде никто не разберётся!".

Херня! Гетерогенные ботлнеки, распределённо и планомерно замедляющие систему - вот в чём никто не сможет разобраться. Ваши ёбаные пирамиды абстракций и сервисов - вот что действительно сложно. 20 строчек нестандартного кода по сравнению с этим - херня собачья.

Но нам, настоящим мужикам, не с руки читать 20 строк кода. Потому что, как мы знаем, "настоящие мужики терпят"(с).

Такие дела



tgoop.com/reinforced_sc/29
Create:
Last Update:

Про перфоманс приложений

Короче тема такая. Я отказываюсь верить в концепцию ботлнека. Если с производительностью жопа - то, скорее всего, нет какого-то ОДНОГО места, в которое всё утыкается и тупит. Если у вас так - то вам повезло.

Согласен, проблемы с производительностью бывают из-за тупых ошибок. Возьмём типичный кейс: там где можно сделать один запрос в базу данных - делается полсотни. Это тупо, это один из простейших ботлнеков и относительно легко лечится.

А вот как насчёт мест, где вместо одного SQL-запроса делается всего два? Фигня-фигнёй, согласитесь. Разница - пара сотен миллисекунд. Но проблемы начинаются когда таких мест в коде тысячи.

И тут за деревьями появляется лес.

Большинство медленных систем, которые я видел не содержали в себе ботлнеков как таковых. Они равномерными тонкими слоями нагружали, скажем, базу данных простыми операциями. Такой... логический DDoS. И что с этим делать кроме "пошло всё нахрен - взять и переписать" - не особо ясно.

И так со всем - лишние сетевые вызовы, лишнее чтение из файловой системы, чтение файлов целиком в строку, листы вместо хэшсетов, промежуточные абстракции.

А самое главное - начинаешь разбираться и вроде по отдельности всё получается такое, собака, нужное. Например, чтение настроек какой-нибудь фигни: ну разве ж сервис X не может одним запросом выбрать все параметры конфигурации? Ан нет, смотришь в логику и там начинается: "ой, мы выберем сначала один, потом второй, потом мы сравним их по модулю 42 и если они разные - вытянем третий". А по одному достаётся чтобы, понимаешь, логическую целостность системы не нарушать. Никому в голову не приходит что выбрать всё один раз выйдет дешевле.

И главное-то сука, код действительно приемлемо и логично выглядит. И читается неплохо. И за интерфейсами всё спрятано. Но мы всё равно делаем 3 запроса в базу, когда можно сделать один! Это же тупость.

Самое печальное, что построить простенький фреймворк с рефлекшоном вокруг настроек, который будет как-нибудь красиво, через шарповую лямбду преобразовывать всё, что хочется запросить в отдельный запрос - религия не позволяет! Сразу начнут вопить вокруг: "велосипеееед! велосипеееед!", "найди готовую либу!", "в этом коде никто не разберётся!".

Херня! Гетерогенные ботлнеки, распределённо и планомерно замедляющие систему - вот в чём никто не сможет разобраться. Ваши ёбаные пирамиды абстракций и сервисов - вот что действительно сложно. 20 строчек нестандартного кода по сравнению с этим - херня собачья.

Но нам, настоящим мужикам, не с руки читать 20 строк кода. Потому что, как мы знаем, "настоящие мужики терпят"(с).

Такие дела

BY Novikov on Soapbox


Share with your friend now:
tgoop.com/reinforced_sc/29

View MORE
Open in Telegram


Telegram News

Date: |

Telegram users themselves will be able to flag and report potentially false content. So far, more than a dozen different members have contributed to the group, posting voice notes of themselves screaming, yelling, groaning, and wailing in various pitches and rhythms. Public channels are public to the internet, regardless of whether or not they are subscribed. A public channel is displayed in search results and has a short address (link). With the sharp downturn in the crypto market, yelling has become a coping mechanism for many crypto traders. This screaming therapy became popular after the surge of Goblintown Ethereum NFTs at the end of May or early June. Here, holders made incoherent groaning sounds in late-night Twitter spaces. They also role-played as urine-loving Goblin creatures. Concise
from us


Telegram Novikov on Soapbox
FROM American