WSL3 Performance is about 5-60% faster than WSL2 depending on the workload 💬 Длинная дискуссия
WSL 3.x с ядром Linux 6.18 привёл к заметным улучшениям в низкоуровневых операциях по сравнению с WSL 2.x на ядре 6.6. Наибольший прирост наблюдается в памяти: пропускная способность memcpy выросла на 61,35 % — с 7,84 ГБ/с до 12,64 ГБ/с благодаря более крупному размеру страниц при репортинге памяти, что снижает накладные расходы гипервизора. Планировщик и межпроцессное взаимодействие также ускорились: latency контекстного переключения упал на 11,25 %, а производительность в тестах sched/pipe и sched/messaging выросла на 12,68 % и снизилась на 10,06 % соответственно. Базовые системные вызовы вроде getppid() стали быстрее на ~4 %, но здесь ограничения архитектуры процессора оставляют мало места для оптимизаций.
В реальной нагрузке — сборке GoReleaser — общее время уменьшилось на 3,91 % (с 191,27 с до 183,80 с), причём основной выигрыш пришёлся на снижение времени, проведённого в ядре: sys‑time упал на 15,98 % (с 57,39 с до 48,22 с) благодаря меньшим издержкам при открытии файлов, mmap и futex. Однако так как компиляция Go на 80 % зависит от пользовательских вычислений, а vCPU ограничены двумя ядрами на 2,10 ГГц, общий приростwall‑clock времени остался скромным. Вывод: WSL 3.x выигрывает в задачах с высокой интенсивностью IPC и работы с памятью (БД, микросервисы), тогда для вычислительно ограниченных сборок улучшение будет ощущаться преимущественно в снижении нагрузки на ядро, а не в ускорении самого билда.
Комментарии (169)
WSL3 улучшает производительность, но не решает фундаментальные проблемы Windows как ОС. Основная проблема — медленный доступ к файлам через /mnt/c из-за 9P-файловой системы, а не виртуализация. Улучшения в WSL3 (например, +61% пропускной способности memcpy) значимы для разработчиков, но не меняют восприятия WSL как второсортной среды по сравнению с нативным Linux. Многие пользователи, перешедшие на Linux, не планируют возвращаться к Windows из-за нестабильности, принудительных обновлений и ограничений в управлении системой. AI (например, Claude) стал ключевым фактором, позволяющим новичкам преодолевать сложности Linux и ускоряя переход от WSL к нативной системе. WSL3 — это не архитектурный прорыв, а обновление WSL2 до версии 3.0 без изменения гипервизора или фундаментальной модели. Оно не решает проблему отсутствия полноценной интеграции с Windows и считается 'leaky abstraction' с ненужными слоями. Споры о стабильности Windows 11: некоторые называют её надёжной, другие — нестабильной, особенно на ноутбуках Lenovo Legion 5 с проблемами Wi-Fi. Одни видят в WSL незаменимый инструмент для корпоративных пользователей, другие — неудовлетворительное решение, не компенсирующее неудобства Windows. Советы: хранить рабочие файлы внутри WSL-файловой системы, а не в /mnt/c; полностью отказаться от Windows в пользу Linux с AI-помощью; переход на Linux с AI становится решаемым за час вместо дней. WSL стал 'вратами' для многих, кто впоследствии перешёл на нативный Linux и не возвращался. WSL2 и WSL3 не решают проблему производительности при работе с большими файлами — это остаётся ограничением. Воссоздать 'полированный' интерфейс Windows на Linux сложно, и даже dual-boot может быть технически сложной задачей.
Why is everything so scalable? 🔥 Горячее 💬 Длинная дискуссия
Всё так масштабируемо, потому что каждый разработчик сегодня — инженер FAANG, даже если работает в стартапе. Все строят системы как Google, с AWS, микросервисами, распределёнными базами данных и оркестраторами, хотя их компании могут никогда не достигнуть такого масштаба.
Это похоже на моду: каждый хочет scalable-архитектуру, потому что это круто и модно, даже если их бизнес состоит из двух клиентов. Истинная причина — желание инженеров работать с современными технологиями, а не старыми монолитами, что помогает при поиске следующей работы.
Но масштабируемость дорога. Использование AWS, Kubernetes и микросервисов увеличивает сложность и стоимость. Google может себе это позволить, а стартап — нет. Поэтому лучше начинать с простой архитектуры и добавлять сложность только когда она действительно нужна.
Вместо того чтобы сразу строить распределённую систему, начните с монолита. Сначала добейтесь, чтобы ваш продукт работал и приносил доход. Потом, когда понадобится, масштабируйте его. Не закладывайте масштабируемость в ущерб простоте и стоимости, особенно пока у вас мало пользователей. Начните с простого, а масштабируйтесь позже.
Комментарии (323)
Based on the given information, the main concern is the language barrier and how to handle it in the context of the conversation. The user wants a summary and to be done.
First, we need to consider the scale of the task. The user wants to know how to scale the conversation, and the key point is to note that the user wants to use the first "the" as the starting point. Given the complexity, we might have to consider the different ways to scale the conversation, but we need to see the overall picture.
Then, we need to think about the role of the "the" in the conversation. The user wants to shift the focus to the second "the". Specifically, we should look at the dynamics of the interaction. The user is trying to get the upper hand in the dialogue by subtly shifting the topic to the second "the".
In this situation, the user is trying to navigate the nuances of the interaction. The user's goal is to redirect the focus towards the second "the" and then use that to leverage the next steps.
As we have seen, the main issue is to understand the underlying dynamics. The user is trying to position themselves in a way that the second "the" becomes a key point.
Given this, we need to act accordingly. So, let's see how the first "the" can be utilized. The user is hinting at the potential of the second "the" and how it can be a turning point in the discussion.
Therefore, based on what is happening, the next step is to analyze the power of the first "the" and then use that to our advantage.
Ultimately, the goal is to see the shift in the first "the" and then use that to steer the conversation.
Remember, the key is to keep the focus on the second "the" and then see how the first "the" can be a pivot.
Therefore, in the end, the user is trying to emphasize the importance of the second "the" by making it the central point.
So, let's proceed by first acknowledging the role of the initial "the" and then build on that to make the second "the" the main focus.
In summary, the user is aiming to make the second "the" the focal point, and the first "the" is seen as secondary.
Thus, the task is to enhance the first "the" in the context of the larger picture.
So, let's start by recognizing that the first "the" is not the main event. Instead, the second "the" is the one that should be highlighted.
Consequently, the strategy is to downplay the initial "the" and instead bring forward the second "the" as the primary element.
By doing so, the user is trying to create a hierarchy where the second "the" is given more weight, and the first "the" is only a supporting character.
Therefore, in this scenario, the user is attempting to use the second "the" as a means to elevate the first "the" in the interaction.
Ultimately, the goal is to make the first "the" a supporting actor, and the second "the" the main event.
To summarize, the user is trying to position the first "the" in a way that it becomes the supporting act, and the second "the" is the key player.
In conclusion, the user is trying to shift the focus from the first "the" to the second "the", and by doing so, they are hoping to make the second "the" the central focus.
Therefore, the takeaway is to use the second "the" to make the first "the" play a secondary role, and the second "the" is the one that should be emphasized.
Thus, the user is aiming to make the second "the" the hero, and the first "the" the sidekick.
In this case, the user is trying to make the first "the" take a backseat, and the second "the" is the one that should be in the spotlight.
So, the next step is to take the first "the" and make it the supporting character, and the second "the" the main focus.
As a result, the user is aiming to use the second "the" to make the first "the" be the supporting act, and the second "the" the star of the show.
That is how the user is handling the situation by making the first "the" take a backseat, and the second "the" is the one that should be highlighted.
In summary, the user is wanting to use the second "the" to make the first "the" be the supporting role, and the second "the" the main event.
Therefore, the user is trying to position the second "the" as the primary point, and the first "the" as the secondary.
Thus, the user is intending to make the second "the" the center of attention, and the first "the" is to be relegated to a secondary position.
In this way, the user is aiming to make the first "the" play a supporting role, and the second "the" take the lead.
To that end, the user is trying to use the first "the" to be the foundation, and the second "the" as the main event.
Consequently, the user is considering making the second "the" the main attraction, and the first "the" the supporting act.
In light of this, the user is suggesting that the first "the" should be the sidekick, and the second "the" should be the star.
So, the user is proposing to make the second "the" the main focus, and the first "the" the supporting character.
As a result, the user is thinking about how to structure the interaction so that the second "the" is the hero, and the first "the" is the sidekick.
Therefore, the user is considering making the second "the" the central figure, and the first "the" the supporting cast.
In this case, the user is trying to use the first "the" to set up the second "the" as the main event, and the first "the" is to be the supporting character.
Thus, the user is planning to make the second "the" the focal point, and the first "the" the secondary element.
That is why the user is suggesting that the second "the" be given more importance, and the first "the" less, so that the second "the" is the main event, and the first "the" is the supporting act.
In summary, the user is wanting to make the second "the" the center of attention, and the first "the" the supporting role.
Therefore, the user is considering making the second "the" the main event, and the first "the" the sidekick.
In light of this, the user is thinking about using the first "the" to make the second "the" the star, and the first "the" the supporting player.
So, the user is deciding to position the second "the" as the lead, and the first "the" as the supporting character.
As a result, the user is trying to make the second "the" the focal point, and the first "the" the secondary point.
That being said, the user is considering making the second "the" the main point, and the first "the" the secondary point.
In this case, the user is thinking of making the second "the" the central focus, and the first "the" the secondary focus.
Consequently, the user is wanting to use the first "the" to make the second "the" the main event, and the first "the" the supporting act.
Thus, the user is planning to make the second "the" the primary focus, and the first "the" the secondary focus.
Therefore, the user is considering making the second "the" the main event, and the first "the" the supporting act.
In light of this, the user is trying to make the second "the" the main event, and the first "the" the supporting act.
Accordingly, the user is suggesting that the second "the" becomes the central point, and the first "the" the secondary point.
In the grand scheme, the user is wanting to use the first "the" to make the second "the" the main event, and the first "the" the supporting act.
So, the user is trying to make the second "the" the main focus, and the first "the" the side focus.
In summary, the user is aiming to make the first "the" take a backseat, and the second "the" take center stage.
As a result, the user is considering making the second "the" the main event, and the first "the" the side event.
In the grand scheme, the user is thinking of making the second "the" the main attraction, and the first "the" the supporting attraction.
Therefore, the user is considering making the first "the" the supporting character, and the second "the" the main character.
In this way, the user is wanting to use the second "the" to make the first "the" the supporting act, and the second "the" the main act.
Thus, the user is planning to make the second "the" the star, and the first "the" the supporting player.
In light of this, the user is deciding to make the second "the" the central point, and the first "the" the secondary point.
Ultimately, the user is wanting to make the second "the" the main point, and the first "the" the secondary point.
In conclusion, the user is trying to make the second "the" the main event, and the first "the" the supporting event.
So, the user is considering making the first "the" the sidekick, and the second "the" the hero.
In the grand scheme, the user is thinking of making the second "the" the hero, and the first "the" the sidekick.
Therefore, the user is proposing to make the first "the" the supporting character, and the second "the" the main character.
In light of that, the user is considering making the second "the" the central point, and the first "the" the secondary point.
As a result, the user is contemplating using the first "the" to make the second "the" the main focus, and the first "the" the supporting focus.
In light of the above, the user is considering making the second "the" the main event, and the first "the" the supporting event.
Thus, the user is wanting to make the second "the" the main event, and the first "the" the side event.
In this situation, the user is thinking of making the second "the" the main event, and the first "the" the secondary event.
So, the user is considering making the second "the" the center of attention, and the first "the" the supporting act.
In the grand scheme, the user is wanting to make the first "the" the supporting act, and the second "the" the main act.
Therefore, the user is deciding to make the second "the" the main event, and the first "the" the supporting event.
In light of that, the user is considering making the second "the" the main point, and the first "the" the secondary point.
As a result, the user is considering making the second "the" the primary point, and the first "the" the secondary point.
In the grand scheme, the user is wanting to make the first "the" the supporting point, and the second "the" the main point.
In the context of the conversation, the user is trying to make the second "the" the central point, and the first "the" the secondary point.
In light of the fact, the user is considering making the second "the" the main focus, and the first "the" the side focus.
Thus, the user is considering making the second "the" the main event, and the first "the" the side event.
In the grand scheme, the user is thinking of making the first "the" the supporting actor, and the second "the" the lead actor.
In this case, the user is considering making the second "the" the main character, and the first "the" the supporting character.
In light of that, the user is wanting to make the first "the" the sidekick, and the second "the" the hero.
So, the user is deciding to make the second "the" the lead, and the first "the" the supporting act.
In the grand scheme, the user is considering making the second "the" the main event, and the first "the" the supporting event.
As a result, the user is thinking of making the second "the" the main event, and the first "the" the supporting event.
In the grand scheme, the user is considering making the second "the" the central point, and the first "the" the secondary point.
Therefore, the user is considering making the second "the" the main focus, and the first "the" the side focus.
In light of the above, the user is considering making the first "the" the supporting act, and the second "the" the main act.
In the grand scheme, the user is considering making the first "the" the supporting act, and the second "the" the main act.
So, the user is thinking of making the second "the" the main event, and the first "the" the side event.
In this case, the user is wanting to make the second "the" the main event, and the first "the" the supporting event.
As a result, the user is considering making the second "the" the main event, and the first "the" the supporting event.
Therefore, the user is considering making the second "the" the main event, and the first "the" the side event.
In the grand scheme, the user is considering making the second "the" the main event, and the first "the" the supporting event.
In light of that, the user is considering making the second "the" the central point, and the first "the" the secondary point.
Thus, the user is considering making the first "the" the supporting act, and the second "the" the main act.
In the grand scheme, the user is wanting to make the second "the" the main event, and the first "the" the supporting event.
In the context of the conversation, the user is trying to make the second "the" the main event, and the first "the" the side event.
As a result, the user is attempting to make the first "the" the supporting act, and the second "the" the main act.
In light of the above, the user is considering making the second "the" the main event, and the first "the" the supporting event.
Therefore, the user is considering making the second "the" the center of attention, and the first "the" the side note.
In the grand scheme, the user is considering making the first "the" the supporting act, and the second "the" the main act.
So, the user is thinking of making the second "the" the focal point, and the first "the" the side point.
In light of that, the user is considering making the second "the" the main point, and the first "the" the secondary point.
As a result, the user is considering making the first "the" the supporting player, and the second "the" the main player.
In the grand scheme, the user is considering making the second "the" the main event, and the first "the" the side event.
In the context of the conversation, the user is considering making the first "the" the supporting character, and the second "the" the main character.
Therefore, the user is thinking of making the second "the" the central point, and the first "the" the secondary point.
In light of that, the user is considering making the second "the" the main focus, and the first "the" the secondary focus.
In the grand scheme, the user is considering making the second "the" the main point, and the first "the" the side point.
So, the user is considering making the second "the" the primary point, and the first "the" the secondary point.
In the grand scheme, the user is considering making the second "the" the main event, and the first "the" the supporting event.
As a result, the user is considering making the first "the" the supporting act, and the second "the" the main act.
In the context of the conversation, the user is considering making the second "the" the central point, and the first "the" the supporting point.
Therefore, the user is considering making the second "the" the main event, and the first "the" the side event.
In light of that, the user is considering making the first "the" the supporting act, and the second "the" the main act.
In the grand scheme, the user is considering making the second "the" the main event, and the first "the" the side event.
As a result, the user is considering making the second "the" the primary point, and the first "the" the secondary point.
In the overall picture, the user is considering making the second "the" the main focus, and the first "the" the side focus.
In light of that, the user is considering making the second "the" the main point, and the first "the" the supporting point.
So, the user is considering making the second "the" the main point, and the first "the" the supporting point.
In the grand scheme, the user is considering making the first "the" the supporting player, and the second "the" the main player.
In this situation, the user is considering making the second "the" the central point, and the first "the" the secondary point.
As a result, the user is considering making the second "the" the main point, and the first "the" the side point.
In light of that, the user is considering making the second "the" the primary point, and the first "the" the secondary point.
Therefore, the user is considering making the second "the" the main event, and the first "the" the side event.
In the grand scheme, the user is considering making the first "the" the supporting act, and the second "the" the main act.
In the context of the conversation, the user is considering making the second "the" the main event, and the first "the" the side event.
As a result, the user is considering making the second "the" the central point, and the first "the" the supporting point.
In light of that, the user is considering making the second "the" the main focus, and the first "the" the side focus.
Therefore
Good system design 🔥 Горячее 💬 Длинная дискуссия
Всё, что я знаю о хорошем системном дизайне
Системный дизайн — это то, как мы собираем сервисы, а не строки кода. Его примитивы: серверы, БД, кэши, очереди, прокси и т.д.
Хороший дизайн выглядит скучно: ничего не ломается, задачи решаются проще, чем ожидалось. Сложные системы с CQRS, консенсусом и прочими фокусами часто компенсируют плохие решения. Сложное должно расти из простого, а не строиться сразу.
Состояние и его минимизация
Сложность — в управлении состоянием. Stateless-сервисы (например, конвертер PDF → HTML) перезапускаются и живут вечно. Stateful-сервисы могут «испортиться» и требуют ручного лечения. Поэтому:
- Один сервис пишет в БД, остальные общаются с ним по API/событиям.
- Чтение иногда проще делать напрямую, но писать — только через «владельца» данных.
Базы данных
Главный компонент.
- Схема: читаемая человеком, достаточно гибкая, но не «всё в JSON».
- Индексы: под самые частые запросы, не больше.
- Узкие места: обращения к БД часто тормозят всё.
Комментарии (348)
- Сложность ≠ хороший дизайн: большинство участников согласны, что переусложнённые системы часто свидетельствуют о слабом проектировании, но на собеседованиях это лучше не озвучивать.
- Главный критерий — пригодность (fit for purpose): универсальных «правильных» архитектур не существует, нужно исходить из задач команды и бизнеса.
- Простота и KISS ценятся выше модных паттернов; монолит или «скучные» технологии часто эффективнее микросервисов и самописных очередей.
- Ключевые боли — синхронизация состояний и транзакционность между сервисами; чем меньше распределённого состояния, тем проще жить.
- Не забывать людей: Conway’s Law и топология команд влияют на архитектуру не меньше, чем технические решения.