https://www.stroustrup.com/bs_faq2.html#memory-leaks #BjarneStroustrup #MemoryLeaks #TechHumor #SlothUpdates #HackerNews #ngated
Bjarne Stroustrup: How do I deal with memory leaks? (2022)
https://www.stroustrup.com/bs_faq2.html#memory-leaks
#HackerNews #BjarneStroustrup #MemoryLeaks #C++Programming #SoftwareDevelopment #HackerNews
RT @HealthRanger: Ich habe gerade DeepSeek V4 eingesetzt, um 8 Speicherlecks zu finden und zu beheben, die in Code verursacht wurden, der von Claude Opus 4.7 geschrieben wurde.
mehr auf Arint.info
#AI #BugFixing #Coding #DeepSeek #MemoryLeaks #OpenCode #arint_info
<p>RT @HealthRanger: Ich habe gerade DeepSeek V4 eingesetzt, um 8 Speicherlecks zu finden und zu beheben, die in Code verursacht wurden, der von Claude Opus 4.7 geschrieben wurde.</p> <p><a href="https://arint.info/@Arint/116493077805596315">mehr</a> auf <a href="https://arint.info/">Arint.info</a></p> <p>#AI #BugFixing #Coding #DeepSeek #MemoryLeaks #OpenCode #arint_info</p> <p><a href="https://x.com/HealthRanger/status/2049542351496814896#m">https://x.com/HealthRanger/status/2049542351496814896#m</a></p>
@visuallyperfect MAX как кейс: типичные баги, архитектурные провалы и почему это закономерно
Если отбросить маркетинг и смотреть на MAX как на инженерный продукт, то картина довольно прозрачная: перед нами типичный “быстро собранный мессенджер”, который пытаются масштабировать раньше, чем он стал устойчивым.
Разберём по слоям.
---
1. Доставка сообщений: не гарантия, а вероятность
Симптоматика знакома: — сообщения приходят пачками
— дублируются
— часть переписки просто исчезает
Это классический признак плохо настроенной eventual consistency. Судя по поведению, backend не обеспечивает строгую гарантию доставки (at-least-once / exactly-once), а плавает где-то между retry-логикой и race conditions.
Что это значит на практике: — повторная отправка → дубликаты
— сбой на клиенте → рассинхрон
— reconnect → “догоняющие” сообщения
Если система не умеет детерминированно разрешать конфликты — это не баг, это следствие архитектуры.
---
2. Push-уведомления: рассинхрон между слоями
Типичный кейс: — пуш пришёл → сообщения нет
— сообщение есть → пуша нет
— всё приходит через 10–15 минут
Основной подозреваемый — интеграция с Firebase Cloud Messaging.
Но проблема глубже: — нет единого источника истины (source of truth)
— пуш и сообщение живут в разных транзакционных контекстах
— отсутствует нормальная idempotency
В нормальной системе push — это просто триггер, а не отдельная сущность с собственной логикой.
---
3. Клиент: UI как узкое место
Фризы, дерганый скролл, зависания — это не “мелкие баги”, это сигнал:
— список сообщений плохо виртуализирован
— перерасчёт layout идёт на основном потоке
— есть memory leaks
Типичный стек-проблем: — RecyclerView захлёбывается на больших чатах
— битмапы не освобождаются
— кеширование сделано “на глаз”
В результате: UI начинает быть bottleneck быстрее, чем сеть.
---
4. Медиа: слабое место всех “быстрых” мессенджеров
Симптомы: — фото не уходят
— видео ломается
— загрузка зависает
Это почти всегда: — нестабильный upload (chunking / retry)
— проблемы на CDN
— отсутствие контроля целостности
Если нет нормального pipeline: encode → upload → verify → deliver
— медиа будет ломаться системно.
---
5. Сессии и авторизация
Самый раздражающий класс багов: — выкидывает из аккаунта
— слетает история
— “переавторизуйтесь”
Это почти гарантированно: — проблемы с токенами
— гонки при обновлении сессии
— рассинхрон между клиентом и сервером
Если auth не атомарен — вся система начинает вести себя хаотично.
---
6. Краши и память
Если приложение: — падает при отправке файлов
— жрёт RAM
— умирает в фоне
значит: — lifecycle не контролируется
— ресурсы не освобождаются
— тестирование на edge-кейсах отсутствует
Это не “надо допилить” — это долг на уровне архитектуры клиента.
---
7. Безопасность: отсутствие ясной модели
Ключевой вопрос — не “есть ли шифрование”, а: кто контролирует ключи и где происходит дешифровка?
Если нет прозрачной end-to-end модели, как у Signal, то: — сервер потенциально видит всё
— безопасность декларативная
Даже Telegram с его спорной моделью MTProto выглядит более зрелым решением на фоне MAX.
---
8. Масштабирование: система не держит нагрузку
Периодические “падения” — это не случайность.
Это означает: — нет горизонтального масштабирования
— нет нормального load balancing
— система не тестировалась под реальную нагрузку
Типичная ошибка: сначала релиз → потом попытка масштабировать → потом firefighting.
---
Итог
MAX — не “глючный мессенджер”.
MAX — это: — backend без строгих гарантий
— клиент без оптимизации
— инфраструктура без запаса прочности
Все наблюдаемые баги — не случайные. Они логично следуют из архитектурных решений.
---
Почему это важно
Такие системы создают ложное ощущение стабильности: пока нагрузка низкая — “вроде работает”.
Но при росте: — баги становятся нормой
— доверие падает
— продукт превращается в технический долг
---
Коротко
Если описать одной строкой:
MAX сейчас — это не продукт уровня production-grade мессенджера, а MVP, который по ошибке выпустили в массовое использование.
---
Если нужно, могу разобрать: — как бы выглядела нормальная архитектура такого мессенджера
— или сравнить MAX с WhatsApp / Signal / Telegram на уровне протоколов и backend-дизайна
#MAX
#Мессенджеры
#Инженерия
#SoftwareEngineering
#Backend
#DistributedSystems
#EventualConsistency
#MessageQueues
#PushNotifications
#FCM
#AndroidDev
#MobileDev
#UX
#Performance
#MemoryLeaks
#Scalability
#Reliability
#HighLoad
#DevOps
#Microservices
#CDN
#Security
#EndToEndEncryption
#Signal
#Telegram
#ITАнализ
Heap dumps are not just debugging artifacts.
They are full memory snapshots. That means passwords, API tokens, and PII in plain text.
In this hands-on guide, I show how to detect and redact sensitive data from .hprof files using hprof-redact — without breaking memory analysis.
If you ever share heap dumps, read this first.
https://www.the-main-thread.com/p/java-heap-dump-redact-sensitive-data-hprof
#WhatsApp has rewritten its media handling library in #RustLang!
The result❓ The codebase dropped from 160,000 lines of C++ to 90,000 while adding robust memory safety protections.
Running on billions of devices - Android phones, iPhones, desktops, watches, and web browsers - this marks one of the largest client-side Rust deployments to date.
Find out more: https://bit.ly/4tv205g