بهینهسازی هدایتشده توسط نمایه، کامپایلر Go را قادر میسازد تا بهینهسازیهای خاص برنامه و حجم کاری را بر اساس اطلاعات نمایه زمان اجرا انجام دهد.
Go 1.20، ارتقاء به زبان منبع باز توسعه یافته توسط Google که به دلیل سادگی، همزمانی و ویژگی های برنامه نویسی کاربردی آن شناخته شده است، در نسخه تولیدی منتشر شد. نسخه جدید بهینه سازی هدایت شده با نمایه (PGO) را برای کامپایلر پیش نمایش می کند.
Go 1.20 که در ۱ فوریه اعلام شد را میتوانید از go.dev دانلود کنید. با Go 1.20، پشتیبانی از پیشنمایش PGO، زنجیره ابزار کامپایلر را قادر میسازد تا بهینهسازیهای خاص برنامه و حجم کار را بر اساس دادههای نمایه زمان اجرا انجام دهد. کامپایلر در حال حاضر از پروفایلهای CPU pprof پشتیبانی میکند که میتوانند از طریق بستههای runtime/pprof
یا net/http/pprof
جمعآوری شوند.
که به عنوان بهینهسازی مبتنی بر بازخورد نیز شناخته میشود، PGO اطلاعات (نمایه) را از اجراهای نماینده برنامه به کامپایلر برای ساخت بعدی برنامه برمیگرداند، که از این اطلاعات برای اتخاذ تصمیمهای بهینهسازی آگاهانهتر استفاده میکند. بنچمارکها برای مجموعهای از برنامههای Go نشان میدهند که فعال کردن بهینهسازی داخلی PGO عملکرد را حدود ۳ تا ۴ درصد بهبود میبخشد. بهینه سازی های PGO بیشتری برای نسخه های آینده برنامه ریزی شده است.
همچنین با Go 1.20:
- مجموعه نمایههای پوشش کد برای برنامهها پشتیبانی میشود، از جمله برای برنامهها و آزمایشهای یکپارچهسازی، برخلاف آزمایشهای واحد.
- دایرکتوری
$GOROOT/pkg
دیگر فعالیت های بسته از پیش کامپایل شده را برای کتابخانه استاندارد ذخیره نمی کند. در عوض، بستههای موجود در کتابخانه در صورت نیاز ساخته میشوند و در کش ساخت ذخیره میشوند. این کار اندازه توزیع Go را کاهش میدهد و از انحراف زنجیره ابزار C برای بستههایی که از cgo استفاده میکنند، جلوگیری میکند. - اجرای
go test –json
برای قویتر شدن بهبود یافته است. برنامه هایی کهgo test -json
را اجرا می کنند نیازی به به روز رسانی ندارند. - فرمان
go
اکنون تگ های ساخت ویژگی معماری را تعریف می کند. - فرمان
go
اکنونcgo
را بهطور پیشفرض در سیستمهای بدون زنجیره ابزار C غیرفعال میکند. - فرمان
go version -m
اکنون از خواندن انواع بیشتری از باینری های Go پشتیبانی می کند، به ویژه DLL های Windows ساخته شده باgo build- buildmode=c shared
و باینری های لینوکس بدون اجرا اجازه. - پشتیبانی آزمایشی برای FreeBSD در RISC-V اضافه شده است.
- Go 1.20 آخرین نسخه ای است که macOS 10.13 High Sierra یا ۱۰.۱۴ Mojave را اجرا می کند. Go 1.21 به macOS 10.15 Catalina یا جدیدتر نیاز دارد.
Go 1.19، که ژنریک و مدل حافظه را بهبود بخشید، در ۲ اوت منتشر شد.
پست های مرتبط
Go 1.20 پیشنمایش بهینهسازی هدایتشده پروفایل را نشان میدهد
Go 1.20 پیشنمایش بهینهسازی هدایتشده پروفایل را نشان میدهد
Go 1.20 پیشنمایش بهینهسازی هدایتشده پروفایل را نشان میدهد