Net Core. جدید ماکروسافت، کد زدن در سیستمهای لینوکسی را راحتتر کرده است؛ اگر شما هم جزو دولوپرهایی هستید که قبلاً سختیهای مرتبط با کامپایل کردن کدهای ویندوزی روی سیستمهای لینوکسی را تجربه کردهاید، هماکنون وقت آن رسیده تا تجربههای سخت گذشته را فراموش کرده و فیچرهای جدید داتنت کور را امتحان کنید و لذت ببرید.
مایکروسافت قبل از انتشار جدیدترین ورژن فریمورک برنامهنویسی خود اعلام کرد که Net Core 2.0. قرار است PGO را برای سیستمهای 64بیتی لینوکس به ارمغان بیاورد (PGO مخفف واژگان Profile-Guided Optimization است بهمعنی بهینهسازی به کمک پروفایل است).
آخرین دستاوردها در این زمینه، بخشی از فریمورک داتنت در ویندوز در طی چند سال اخیر بوده که نسخهٔ Net Core 1.1. برای ویندوز عرضه شد.
PGO بهعنوان تکنولوژی کامپایل نیتیو برای کامپایلر ++C توسعه یافت تا کدها را در یک پروسهٔ دومرحلهای با سرعت بیشتری جنریت کند (Native Compiler درواقع کامپایلی است که از تکنولوژی مشابه ماشینی که برنامه روی آن درحال اجرا است استفاده میکند).
این تکنولوژِی به دولوپرها کمک میکند تا کدهای بهینه شدهای برای سختافزار موجود جنریت و اجرا کنند؛ بهخصوص برای محیط لینوکس، PGO طراحی شده که در پرفرمنس توازن ایجاد کند.
تیم توسعه نیاز داشتند که روی Toolchainهای کامپایلر که برای هر نسخهٔ لینوکس متفاوت است کار کنند (یک Toolchain درواقع مجموعهای از ابزارهای برنامهنویسی است که برای اجرای تسکهای پیچیدهٔ برنامهنویسی استفاده میشود). همچنین آنها نیاز داشتند که تفاوت هر ورژن از ابزارها مثل LLVM که میتواند ورژن مورد استفادهٔ PGO را تغییر دهد را نیز درنظر بگیرند.
در همین راستا، برتراند لیروی مدیر برنامههای مایکروسافت داتنت در یک پست وبلاگی توضیح داد:
عامل آسانتر شدن این مسئله در لینوکس این هست که ما درحال ساخت یک ورژن از داتنت مخصوص لینوکس هستیم و بعداً در قالب یک پکیج در نیتیو ایسنتالرها و تاربالها (فایلهای نصبی لینوکس) قرار میدیم. این کار باعث میشه بهینهسازی پیجیاو برای تمام نسخههایی که منابع مشترک دارند با پیچیدگی کمتری استفاده بشه.
عرضهٔ نسخهٔ پیشنمایش Net Core 2.0. برای تست
دولوپرها میتوانند نسخهٔ پیشنمایش Net Core 2.0. را روی سیستمهای لینوکسی خود تست کنند هرچند آخرین ورژن توسعهٔ PGO در ابتدا به کامپوننتهایی که بهصورت داخلی بهشکل نیتیو کامپایل میشوند محدود میباشد.
در پایان هم لازم بهذکر است اپلیکیشنهایی که با این فریمورک توسعه داده شدهاند، پچهای بهینهسازی کد را بدون نیاز به نصب مجدد دریافت خواهند کرد.