.Net Core 2.0 mở rộng các tối ưu code sang Linux

Ngoc Huynh

Phiên bản tiếp theo của mã nguồn mở runtime đa nền tảng của Microsoft sẽ tạo ra native code chạy nhanh hơn trên Linux cũng như Windows.

Phiên bản .Net Core 2.0 sẽ mang công nghệ Profile Guided Optimization (PGO) đến với Linux x64. PGO là một công nghệ biên dịch native được sử dụng bởi trình biên dịch C++ để tạo ra code chạy nhanh hơn.

PGO nhấn mạnh quy trình hai bước, bao gồm bước training run có nhiệm vụ ghi chép lại thông tin thực thi và bước build sử dụng các kết quả của bước training run để tạo ra code được tối ưu tốt hơn. Bản nâng cấp .Net Core 2.0 sẽ bổ sung các tối ưu PGO vào .Net Core trên cả Windows x86 và Linux x64. PGO đã được sử dụng với Windows x64 trong bản phát hành .Net Core 1.1 và nó đã được sử dụng trong .Net Framework nhiều năm qua.

Sự phân mảnh (Fragmentation) trong hệ sinh thái Linux, cùng với các chuỗi công cụ biên dịch khác nhau trên khắp các distro, đã làm cho công nghệ PGO gặp khó khăn hơn khi làm việc trên Linux hơn là trên Windows. “Một yếu tố đơn giản trên Linux đó là chúng tôi đang xây dựng một phiên bản” Linux “độc đáo của .Net, sau đó chúng tôi đóng gói vào các trình cài đặt và tarball gốc”, Microsoft cho hay. “Điều này sẽ giúp chúng ta có thể thể áp dụng các tối ưu hóa PGO cho tất cả các distro tiêu thụ những bit thông thường với độ phức tạp được giảm thiểu”. Mozilla cũng đã cho phép sử dụng PGO trong hệ thống build riêng của mình cho trình duyệt Firefox.

.Net Core 2.0 hiện đang ở giai đoạn preview. PGO chỉ áp dụng vào các thành phần của runtime được biên dịch native, internal và biên dịch JIT. Tất cả các ứng dụng tự động nhận lợi ích của PGO. Lợi ích sẽ thay đổi tùy theo ứng dụng. “Trong bản phát hành này, chúng tôi đã áp dụng các tối ưu hóa này vào các phần native của runtime, dựa trên profiling data (dữ liệu định hình) từ các ứng dụng .NET điển hình”, các nhà phát triển của Microsoft cho hay. “Đối với bản phát hành trong tương lai, chúng tôi đang lên kế hoạch áp dụng các tối ưu hóa tương tự cho các thành phần được quản lý của .Net Core stack “.

Chia sẻ bài viết ngay

Nguồn bài viết : http://www.infoworld.com