Khuôn 1.1 đã được phát hành, hãy biết tin tức về Trình liên kết hiện đại này vượt trội hơn GNU vàng và LLVM

Vài ngày trước việc phát hành phiên bản mới của Khuôn liên kết hiện đại 1.1 đã được công bố, có thể được sử dụng như một sự thay thế minh bạch nhanh hơn cho trình liên kết GNU trên hệ thống Linux.

Trong phiên bản mới này của khuôn 1.1 là phiên bản chứa các tính năng mới, sửa lỗi và cải tiến hiệu suất.

Về khuôn

Khuôn hỗ trợ tất cả các tính năng của trình liên kết GNU và nó có hiệu suất rất cao, vì các liên kết mà nó tạo ra chỉ nhanh gấp đôi so với việc sao chép các tệp tin bằng tiện ích cp một cách đơn giản.

Bằng cách này, giảm thời gian biên dịch cải thiện đáng kể sự thuận tiện của việc phát triển các dự án lớn bằng cách giảm thời gian chờ trong quá trình tạo tệp thi hành khi gỡ lỗi và kiểm tra các thay đổi.

Động lực để tạo Khuôn là sự khó chịu khi phải đợi liên kết hoàn tất sau mỗi lần thay đổi mã, cũng như hiệu quả thấp của các trình liên kết hiện có trong hệ thống đa lõi và mong muốn thử nghiệm một kiến ​​trúc liên kết khác về cơ bản mà không cần dùng đến các mô hình phức tạp không cần thiết như liên kết gia tăng.

Hiệu suất cao của việc liên kết tệp thực thi từ một số lượng lớn tệp đối tượng do trình biên dịch chuẩn bị trong Khuôn đạt được thông qua việc sử dụng các thuật toán nhanh hơn, hoạt động song song tích cực giữa các lõi CPU có sẵn và sử dụng cấu trúc dữ liệu hiệu quả hơn.

Ví dụ: Khuôn thực hiện một kỹ thuật để thực hiện các tính toán chuyên sâu đồng thời với tính năng sao chép tệp, chủ động tải tệp đối tượng vào bộ nhớ, sử dụng bảng băm nhanh khi phân giải ký tự, quét các bảng chuyển vị trí trong một luồng riêng biệt và loại bỏ các phần trùng lặp được lặp lại trong các tệp khác nhau.

Những điểm mới chính của Khuôn 1.1

Trong phiên bản mới này của Khuôn 1.1 được trình bày, nó được nhấn mạnh rằng hỗ trợ tối ưu hóa giai đoạn liên kết (LTO, Tối ưu hóa thời gian liên kết).

Các tối ưu hóa LTO khác nhau bằng cách tính đến trạng thái của tất cả các tệp liên quan đến quá trình xây dựng, trong khi các chế độ tối ưu hóa truyền thống tối ưu hóa từng tệp riêng lẻ và không tính đến các điều kiện để gọi các hàm được xác định trong các tệp khác.

Trước đây, khi các tệp mã trung gian (IR) GCC hoặc LLVM gặp phải, các trình liên kết ld.bfd hoặc ld.lld thích hợp được gọi ra, nhưng giờ đây Khuôn tự xử lý các tệp IR và sử dụng API trình cắm liên kết, cũng được sử dụng trong GNU ld và GNU vàng liên kết. Tốc độ khi LTO được bật chỉ nhanh hơn một chút so với các trình liên kết khác, vì phần lớn thời gian được dành để tối ưu hóa mã chứ không phải liên kết.

Nó cũng được nhấn mạnh rằng các tùy chọn được thêm vào “–Print-dependencies” và “–print-dependencies = full” pĐể tạo thông tin ở định dạng CSV về các phần phụ thuộc giữa các tệp đầu vào, chẳng hạn, có thể được sử dụng để phân tích lý do kết nối khi liên kết các tệp đối tượng nhất định hoặc trong khi làm việc để giảm thiểu sự phụ thuộc giữa các tệp.

Một thay đổi khác nổi bật so với eversion mới là hỗ trợ kiến ​​trúc RISC-V (RV64) trên máy chủ và nền tảng đích.

Ngoài ra, chúng ta cũng có thể thấy rằng đã thêm tùy chọn “–emit-relocs” để cho phép sao chép các phần chuyển địa chỉ từ tệp đầu vào đến tệp cuối cùng để áp dụng các tối ưu hóa hơn nữa ở giai đoạn hậu liên kết.

Trong số những thay đổi khác nổi bật:

  • Đã thêm tùy chọn “–shuffle-section” để sắp xếp thứ tự các phần một cách ngẫu nhiên trước khi sửa địa chỉ của chúng trong không gian địa chỉ ảo.
  • Đã thêm các tùy chọn “–warn-once” và “–warn-textrel”.
  • Đã xóa phần phụ thuộc vào libxxhash.

Cuối cùng nếu bạn muốn biết thêm về nó, bạn có thể kiểm tra các chi tiết trong liên kết theo dõi.

Làm thế nào để cài đặt Khuôn?

Đối với những người quan tâm đến việc có thể làm việc với Mold, họ có thể có được tiện ích này bằng cách tải xuống và biên dịch mã nguồn. Để thực hiện việc này, chỉ cần mở một thiết bị đầu cuối và nhập như sau:

git clone https://github.com/rui314/mold.git
cd mold
git checkout v1.1.1
make -j$(nproc) CXX=clang++
sudo make install

Để biết công dụng của Khuôn, bạn có thể tham khảo tài liệu trong liên kết này.


Để lại bình luận của bạn

địa chỉ email của bạn sẽ không được công bố. Các trường bắt buộc được đánh dấu bằng *

*

*

  1. Chịu trách nhiệm về dữ liệu: Miguel Ángel Gatón
  2. Mục đích của dữ liệu: Kiểm soát SPAM, quản lý bình luận.
  3. Hợp pháp: Sự đồng ý của bạn
  4. Truyền thông dữ liệu: Dữ liệu sẽ không được thông báo cho các bên thứ ba trừ khi có nghĩa vụ pháp lý.
  5. Lưu trữ dữ liệu: Cơ sở dữ liệu do Occentus Networks (EU) lưu trữ
  6. Quyền: Bất cứ lúc nào bạn có thể giới hạn, khôi phục và xóa thông tin của mình.