TGViewer
OpenPCB OpenPCB @openpcb · 3.44K subscribers
Post #275 5.64K
پروژه LWMalloc یه memory allocator سبک برای سیستم‌های امبدده که نسبت به ptmalloc تو Glibc تا ۵۳٪ سریع‌تره و ۲۳٪ هم حافظه کمتری مصرف می‌کنه.

مشکل malloc تو امبدد اینه که به مرور حافظه رو تکه‌تکه می‌کنه و وقتی فریمور طولانی‌مدت بالا بمونه آخرش به کرش می‌رسه. بعضیا سمت garbage collection می‌رن، ولی روی دیوایس‌های محدود خیلی وقتا عملی نیست. به همین خاطر خیلیا ترجیح میدن حافظه رو استاتیک یا با memory pool مدیریت کنن (که به نظر من بهترین راهه). یه گزینه دیگه هم نوشتن allocator اختصاصیه (که از نظر من بدترین راهه!)، و این دقیقاً کاریه که LWMalloc کرده.

طبق مقاله “LWMalloc: A Lightweight Dynamic Memory Allocator for Resource-Constrained Environments”، این لایبرری از ساختار داده خیلی سبک، سیاست deferred coalescing و استخرهای جدا برای chunkهای کوچیک استفاده می‌کنه. نتیجه؟ متادیتای کمتر، عملیات ادغام به‌موقع به جای وسط کار، و پاسخ O(1) برای درخواست‌های کوچیک.

تست‌های دانشگاه SEOULTECH نشون داده LWMalloc نسبت به ptmalloc حدود ۵۳٪ سریع‌تره و ۲۳٪ کمتر حافظه می‌خوره. کل کدش ۵۳۰ خط و footprint حدود ۲۰ کیلوبایته، در حالی که ptmalloc نزدیک ۴۸۳۸ خط و ۱۱۶ کیلوبایته. تو اطلاعیه‌شون هم اشاره کردن که allocatorهایی مثل jemalloc، tcmalloc و mimalloc هستن ولی به خاطر مصرف حافظه بالا و پیچیدگی آخرش افت کارایی دارن.

کد C و برنامه تستش روی گیت‌هاب هست و چون همون malloc/calloc/realloc/free استاندارد رو پیاده‌سازی کرده، میشه مستقیم جاش استفاده کرد یا حتی با LD_PRELOAD بدون تغییر اپلیکیشن جایگزینش کرد.

کاربرد اصلیش تو سیستم‌های امبدد و IoT با محدودیت حافظه و کاراییه: از تلویزیون هوشمند و ست‌تاپ‌باکس گرفته تا پوشیدنی‌ها، سیستم‌های خودرویی real-time و کامپیوترهای edge برای AI.

ولی راستش رو بخواید، من همچنان روش‌های استاتیک یا memory pool رو پیشنهاد می‌کنم، مگر اینکه اسلحه رو سرتون باشه :)


اگه دوست داشتید اصل مقاله رو مطالعه کنید اینجا می‌تونید پیداش کنید.
ریپوی پروژه رو هم اینجا می‌تونید بررسی کنید.

📺Source

📡openpcb
  • 👍 13
  • ❤ 2
  • ⚡ 1
More from @openpcb
  1. Sep 28, 2026خب خب بریم تو کارش. پ‌ن: قرار نیست سریع انجام بشه من خیلی تنبلم و یک سر دارم و هزار سودا!…
  2. Sep 6, 2026یه کاربر چینی به اسم GoFly یه برد فلایت‌کنترلر FPV رو کامل با GPT-6 Astraطراحی کرده. مدل ک…
  3. Aug 11, 2026یه پروژه سخت‌افزاری بگید کلش رو Vibe-Craft کنم و اینجا گزارش بدم. فضایی نباشه فقط. 😅 راست…
  4. Aug 5, 2026Post #350
  5. Aug 2, 2026چیپ مغزی Neuralink، استارتاپ چیپ مغزی ایلان ماسک، حالا به معلولان حرکتی امکان کنترل ویلچره…
  6. Jul 29, 2026وضعیت تولید و قیمت چیپ‌های حافظه چه از نوع RAM چه eMMC بقدری بحرانی و عجیب غریبه که یکی از…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →