[ Source >> @openpcb ]
#سی
پروژه 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 رو پیشنهاد میکنم، مگر اینکه اسلحه رو سرتون باشه :)
اگه دوست داشتید اصل مقاله رو مطالعه کنید اینجا میتونید پیداش کنید.
ریپوی پروژه رو هم اینجا میتونید بررسی کنید.
🚁 Hicte Blog | (smm)
#سی
پروژه 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 رو پیشنهاد میکنم، مگر اینکه اسلحه رو سرتون باشه :)
اگه دوست داشتید اصل مقاله رو مطالعه کنید اینجا میتونید پیداش کنید.
ریپوی پروژه رو هم اینجا میتونید بررسی کنید.
🚁 Hicte Blog | (smm)
👍3❤1
🤯8😁3😐2😡1
[ Source >> @openpcb]
#خبر
طبق دادههای شاخص TIOBE، زبان برنامهنویسی پرل از سال قبل که رتبه ۲۷ام را داشته، امسال یهویی به رتبه دهم زبانهای برنامهنویسی محبوب رسیده!
این جهش نه حاصل نسخههای انقلابی بوده و نه کمپینهای تبلیغاتی، بلکه بیشتر به یک عامل کمتر دیدهشده برمیگرده: منابع آموزشی! پرل تو آمازون چهار برابر PHP و هفت برابر Rust کتاب داره! این حجم محتوای آموزشی و انتشارهای منظم نسخههای جدید باعث شده توسعهدهندگان دوباره سراغش برن، در حالی که Perl 6 (یا همان Raku) در رتبه ۱۲۹ مونده.
در همین بازه، سی هم جای خودش رو با جاوا عوض کرده و از رتبه چهار به سوم رسیده. پایتون همچنان در صدر جدوله و حتی سهمش بیشتر شده، اما راست از رتبه ۱۴ام به ۱۸ام سقوط کرده. این نشون میده حتی زبانهای پرسروصدا هم بدون اکوسیستم آموزشی قوی افت میکنند🤷🏻♂️
این اعداد نشون میدن شاخص TIOBE فقط یک عکس لحظهای نیست، بلکه روندهای بلندمدت جامعه رو هم منعکس میکنه، زبانهای قدیمی با انتشار منظم و منابع آموزشی غنی میتونند اوج بگیرند و زبانهای تازهنفس بدون پشتیبانی محتوایی ممکنه افت کنند.
TIOBE
🚁 Hicte Blog | (smm)
#خبر
طبق دادههای شاخص TIOBE، زبان برنامهنویسی پرل از سال قبل که رتبه ۲۷ام را داشته، امسال یهویی به رتبه دهم زبانهای برنامهنویسی محبوب رسیده!
این جهش نه حاصل نسخههای انقلابی بوده و نه کمپینهای تبلیغاتی، بلکه بیشتر به یک عامل کمتر دیدهشده برمیگرده: منابع آموزشی! پرل تو آمازون چهار برابر PHP و هفت برابر Rust کتاب داره! این حجم محتوای آموزشی و انتشارهای منظم نسخههای جدید باعث شده توسعهدهندگان دوباره سراغش برن، در حالی که Perl 6 (یا همان Raku) در رتبه ۱۲۹ مونده.
در همین بازه، سی هم جای خودش رو با جاوا عوض کرده و از رتبه چهار به سوم رسیده. پایتون همچنان در صدر جدوله و حتی سهمش بیشتر شده، اما راست از رتبه ۱۴ام به ۱۸ام سقوط کرده. این نشون میده حتی زبانهای پرسروصدا هم بدون اکوسیستم آموزشی قوی افت میکنند🤷🏻♂️
این اعداد نشون میدن شاخص TIOBE فقط یک عکس لحظهای نیست، بلکه روندهای بلندمدت جامعه رو هم منعکس میکنه، زبانهای قدیمی با انتشار منظم و منابع آموزشی غنی میتونند اوج بگیرند و زبانهای تازهنفس بدون پشتیبانی محتوایی ممکنه افت کنند.
TIOBE
🚁 Hicte Blog | (smm)
👍5
پستای ارسالیتون رو میتونین به آیدی:
@HicteBridge
بفرستین و با لینک به آیدیتون تو کانال قرار میگیره. مثل:
" | (smm) "
@HicteBridge
بفرستین و با لینک به آیدیتون تو کانال قرار میگیره. مثل:
" | (smm) "
👍2