Unang stable nga pagpagawas sa Mold builder nga gimugna sa LLVM lld

Si Rui Ueyama, tagsulat sa LLVM lld linker ug ang chibicc compiler, nagpresentar sa unang stable nga pagpagawas sa bag-ong high-performance Mold linker, nga namatikdan nga nag-una sa GNU gold ug LLVM lld linkers sa termino sa object file linking speed. Ang proyekto gikonsiderar nga andam na alang sa pag-deploy sa produksiyon ug mahimong gamiton isip mas paspas nga transparent nga kapuli sa GNU linker sa Linux system. Ang mga plano alang sa sunod nga mayor nga pagpagawas naglakip sa pagdala sa suporta alang sa macOS nga plataporma sa pagkaandam, pagkahuman magsugod ang trabaho sa pagpahiangay sa Mold para sa Windows.

Ang agup-op gisulat sa C++ (C++20) ug giapod-apod ubos sa AGPLv3 nga lisensya, nga GPLv3 compliant apan dili GPLv2 compliant, tungod kay kini nagkinahanglan og mga kausaban nga ablihan sa diha nga pagpalambo sa network services. Kini nga pagpili tungod sa tinguha nga makakuha og pundo sa pag-uswag - ang tagsulat andam nga ibaligya ang mga katungod sa code alang sa pag-relicensing ubos sa permissive nga lisensya, sama sa MIT, o paghatag og bulag nga komersyal nga lisensya alang niadtong wala matagbaw sa AGPL.

Gisuportahan sa agup-op ang tanan nga mga bahin sa GNU linker ug paspas kaayo, nagsumpay sa katunga lamang sa gikusgon sa yano nga pagkopya sa mga file gamit ang cp. Pananglitan, kung magtukod og Chrome 96 (gidak-on sa code 1.89 GB), gikinahanglan ang 8 segundos aron matukod ang c debuginfo executables sa 53-core computer gamit ang GNU gold, 11.7 segundos para sa LLVM lld, ug 2.2 segundos lang para sa Mold (26 ka beses nga mas paspas kay sa GNU nga bulawan). Sa pag-link sa Clang 13 (3.18 GB), ang GNU gold mokabat ug 64 segundos, ang LLVM lld mokabat ug 5.8 segundos, ug Mould mokabat ug 2.9 segundos. Sa pag-link sa Firefox 89 (1.64 GB), ang GNU gold mokabat ug 32.9 ka segundos, ang LLVM lld mokabat ug 6.8 ka segundos, ug ang Mold mokabat ug 1.4 ka segundos.

Unang stable nga pagpagawas sa Mold builder nga gimugna sa LLVM lld

Ang pagkunhod sa oras sa pag-link mahimo’g makapauswag pag-ayo sa usability sa paghimo og dagkong mga proyekto pinaagi sa pagkunhod sa paghulat sa proseso sa paghimo og mga executable nga mga file sa panahon sa pag-debug ug pagsulay sa mga pagbag-o. Ang agup-op gipalihok sa kalagot sa paghulat nga makompleto ang pag-link pagkahuman sa matag pagbag-o sa code, ingon man ang dili maayo nga pasundayag sa naglungtad nga mga linker sa mga multi-core nga sistema, ug ang tinguha nga sulayan ang usa ka sukaranan nga lahi nga arkitektura sa pag-link nga wala gigamit nga wala kinahanglana. komplikado nga mga modelo, sama sa incremental linking.

Ang taas nga performance sa pagsumpay sa usa ka executable file gikan sa usa ka dako nga gidaghanon sa mga object files nga giandam sa compiler sa Mold makab-ot pinaagi sa paggamit sa mas paspas nga mga algorithm, aktibo nga pagparis sa mga operasyon tali sa anaa nga CPU cores, ug paggamit sa mas episyente nga mga istruktura sa datos. Pananglitan, ang agup-op nag-implementar sa teknik sa paghimo sa intensive calculations dungan sa pagkopya sa mga file, prefetching object files ngadto sa memorya, gamit ang paspas nga hash tables sa pagsulbad sa mga karakter, pag-scan sa relocation tables sa usa ka separado nga thread, ug pag-deduplicate sa gihiusa nga mga seksyon nga gisubli sa lain-laing mga file.

Source: opennet.ru

Idugang sa usa ka comment