در حال خواندن مقاله “reasons to ditch make for cmake” بودم که به ایدهای برای بهبود زمان کامپایل رسیدم. این مقاله به بررسی 3 مزیتِ استفاده از CMake به جای Make در پروژههای امبدد سیستم میپردازه.
اولین مزیتی که نویسنده بهش پرداخته سرعت به مراتب بالاترِ کامپایل در استفاده از CMake و Ninja بود. اما در خلال توضیحاتش به این نکته هم اشاره کرده که اگر در استفاده از دستور make ما از j- استفاده کنیم، به دلیل استفاد از هستههای بیشتر CPU، باعث میشود سرعت کامپایل ما به میزان چشم گیری افزایش یابد.
جلوی این option باید متناسب با سیستمتان و تعداد هستههایی که میخواهید در اختیار کامپایلر قرار دهید، یک عدد قرار دهید. مثلا make -j8
من از قبل با این option آشنا بودم اما متاسفانه حداقل در کار فعلیم ازش استفادهای نمیکردم. این مقاله بهم تلنگری زد تا بر روی پروژهی فعلی که در محیط WSL2 ویندوز با سرعت بسیار کمی آن را کامپایل میکردم، تست کنم. قبل از این فکر میکردم دلیل این سرعت پایین ناشی از نحوهی ارتباط فایلهای بین ویندوز و لینوکس در WSL2 بر میگردد. اما با دیدن نتیجه تست که کاهش زمان کامپایل از 4 دقیقه و 46 ثانیه به 30 ثانیه بود، متوجه شدم سخت در اشتباه بودم.