Khuôn, một Trình liên kết hiện đại vượt trội so với vàng GNU và LLVM lld

Rui Ueyama, tác giả của nhà soạn nhạc LLVM lld và trình biên dịch chibicc, được công bố cách đây thành quả nhỏ của công việc mới của anh ấy và trình bày phiên bản ổn định đầu tiên của «Khuôn mẫu liên kết cao» mới, nổi bật vì đã vượt xa tốc độ liên kết của trình liên kết tệp đối tượng vàng GNU và LLVM.

Hiện tại, dự án được coi là đã sẵn sàng cho việc triển khai sản xuất và 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.

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.

Ví dụ: khi biên dịch Chrome 96 (kích thước mã 1,89 GB), việc liên kết tệp thực thi với debuginfo trên máy tính 8 lõi mất 53 giây với GNU Gold, LLVM lld mất 11,7 giây và Mold chỉ 2,2 giây (nhanh hơn GNU vàng 26 lần) .

Ngoài ra, khi liên kết Clang 13 (3,18 GB), GNU vàng mất 64 giây, LLVM lld mất 5,8 giây và Mốc mất 2,9 giây và khi liên kết Firefox 89 (1,64 GB), vàng GNU mất 32,9 giây, LLVM lld mất 6,8 giây và Khuôn mất 1,4 giây.

Khuôn 1.0 là phiên bản ổn định và sẵn sàng sản xuất đầu tiên của trình liên kết tốc độ cao. Trên các hệ thống dựa trên Linux, nó sẽ "hoạt động" như một sự thay thế trực tiếp nhanh hơn cho trình liên kết GNU mặc định cho hầu hết các chương trình người dùng. Nếu bạn đang tạo một tệp thực thi lớn cần nhiều thời gian để liên kết, bạn nên thử nghiệm mẫu để xem liệu nó có thể rút ngắn thời gian biên dịch của bạn hay không. Khuôn dễ chế tạo và sử dụng.

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ụ: Mold triển khai một kỹ thuật để thực hiện tính toán chuyên sâu đồng thời với 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í theo một trình tự 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.

Cuối cùng, cần lưu ý rằng Khuôn được viết bằng C ++ 20 và được phân phối theo giấy phép AGPLv3, tuân thủ GPLv3, nhưng không tuân thủ GPLv2 vì nó yêu cầu thay đổi tính mở khi phát triển dịch vụ mạng. Sự lựa chọn này được giải thích bởi mong muốn nhận được tiền để phát triển: tác giả sẵn sàng bán quyền đối với mã để cấp phép lại theo một giấy phép dễ dàng như MIT, hoặc cung cấp một giấy phép thương mại riêng cho những người không hài lòng với AGPL.

Đối với các kế hoạch trong tương lai mà họ có, nó được đề cập rằng hiện tại làm việc trên Khuôn cho macOS  (mặc dù hỗ trợ phiên bản 1.0 này đã được thêm vào nhưng vẫn được coi là alpha) và sau khi hoàn tất, hỗ trợ sẽ được phát hành trong phiên bản 2.0 của Mold và sau đó nó được đề cập rằng nó sẽ hoạt động trong Khuôn cho Windows và sẽ được triển khai trong phiên bản 3.0.

Si bạn muốn biết thêm về dự án này hoặc bạn muốn biên dịch nó để có thể sử dụng nó trên hệ thống của mình, bạn có thể kiểm tra chi tiết và / hoặc hướng dẫn biên dịch Trong liên kết sau đâ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.