Heap-fragmentation

  • Published on
    Artikel ini mengunci disiplin lifecycle object dan kebijakan alokasi memori untuk firmware ESP32 berbasis Arduino. Masalah jangka panjang pada sistem produksi sering berasal dari dynamic allocation tersembunyi, fragmentasi heap, object yang dibuat di dalam loop, serta penggunaan `String` dan container growable tanpa kontrol. Embedded system membutuhkan determinism dan prediktabilitas, bukan fleksibilitas runtime berlebihan. Artikel ini menetapkan prinsip static-first allocation, pembatasan ketat penggunaan heap, larangan alokasi di ISR dan control loop, serta destructor yang harus trivial. Dengan lifecycle eksplisit dan memori terkendali, firmware dapat bertahan bertahun-tahun tanpa degradasi stabilitas atau reset misterius.
  • Published on
    Artikel ini adalah guardrail final untuk memastikan seluruh arsitektur yang telah dikunci pada Artikel 2–7 tidak dihancurkan oleh OOP yang berlebihan. Setelah dependency, memory, layering, concurrency, communication, dan reliability dibekukan, risiko terbesar justru datang dari abstraction tanpa disiplin - virtual berlebihan, template kompleks, hidden allocation (String, container growable), singleton terselubung, dan dynamic allocation di hot path. Artikel ini tidak menambah rule baru, tetapi mengaudit dan memperkuat seluruh freeze sebelumnya. Dengan pendekatan audit berbasis red-flag, firmware dapat dipertahankan stabil 3–5 tahun tanpa berubah menjadi versi modern dari spaghetti code.