LLVM lld linker ááŸáá·áº chibicc compiler ááá±ážáá¬ážáá° Rui Ueyama ááẠGNU gold ááŸáá·áº LLVM lld linkers áá»á¬ážááẠObject file linking speed á¡á áááá¬áááºááŸá¬ážáá±á¬ á áœááºážáá±á¬ááºáááºááŒáá·áº Mold linker á¡áá áºá ááááá¯á¶áž áááºááŒáááºáá±á¬ ááœááºááŸáááŸá¯ááᯠáááºááŒáá²á·áá«áááºá ááá±á¬áá»ááºááẠáá¯ááºáá¯ááºááŸá¯ááŒáá·áºáá»ááºááŸá¯á¡ááœáẠá¡áááºááá·áºááŒá áºáá±ááŒá®áᯠáá°ááá¬ážááŒá®áž Linux á áá áºáá»á¬ážááŸá GNU ááá·áºááºáá¬á¡ááœáẠááá¯ááá¯ááŒááºáááºáá±á¬ ááœáá·áºáááºážááŒááºáá¬ááŸá¯á¡á á¬ážááá¯ážááŸá¯á¡ááŒá Ạá¡áá¯á¶ážááŒá¯ááá¯ááºáá«áááºá áá¬ááá·áºá¡áááááœááºááŸáááŸá¯á¡ááœááºá¡á á®á¡á á¥áºáá»á¬ážááœáẠmacOS ááááºáá±á¬ááºážá¡ááœáẠá¡áááºááá·áºááŒá áºáá±á á±ááẠáá¶á·ááá¯ážáá°áá®ááŸá¯áá»á¬ážáá«áááºááŒá®áž áááºážáá±á¬áẠWindows á¡ááœáẠMold ááᯠááá¯ááºáá»á±á¬áá®ááœá±ááŒá áºá¡á±á¬áẠáá¯ááºáá±á¬ááºááœá¬ážáááºááŒá áºáááºá
ááŸáá¯ááᯠC++ (C++20) ááŒáá·áº áá±ážáá¬ážáá¬ážááŒá®áž AGPLv3 ááá¯ááºá ááºá¡á±á¬ááºááœáẠááŒáá·áºáá±áá¬ážáááºá GPLv3 ááŸáá·áº ááá¯ááºáá®áá±á¬áºáááºáž GPLv2 ááŸáá·áº áááá¯ááºáá®áá±á¬ááŒá±á¬áá·áºá ááœááºáááºáááºáá±á¬ááºááŸá¯áá»á¬ážááᯠáá±á¬áºáá±á¬ááºááá·áºá¡áá«ááœáẠááœáá·áºááẠá¡ááŒá±á¬ááºážá¡áá²áá»á¬áž ááá¯á¡ááºáá±á¬ááŒá±á¬áá·áº áááºážááᯠááœáá·áºááẠááá¯á¡ááºáá«áááºá á€ááœá±ážáá»ááºááŸá¯ááẠááœá¶á·ááŒáá¯ážáá±ážáááºáá¯á¶ááœá±ááá°ááá¯áá±á¬ááá¹áááŒá±á¬áá·áºááŒá áºááẠ- á á¬áá±ážáá°ááẠMIT áá²á·ááá¯á·áá±á¬ ááœáá·áºááŒá¯áá»ááºááá¯ááºá ááºáá áºáá¯á¡á±á¬ááºááœáẠááá¯ááºá ááºááŒá¯áá¯ááºáááºá¡ááœáẠáá¯ááºáá¯ááºááá¯ááºááœáá·áºáá»á¬ážááᯠáá±á¬ááºážáá»áááºááá¹áááŸááá«ááẠááá¯á·ááá¯áẠAGPL ááᯠááá»á±áááºáá°áá»á¬ážá¡ááœáẠáá®ážááŒá¬ážá á®ážááœá¬ážáá±ážááá¯ááºá ááºáá áºáᯠáá±ážááá¯áá«áááºá
Mold ááẠGNU linker áá¡ááºá¹áá«áááºá¡á¬ážáá¯á¶ážááá¯áá¶á·ááá¯ážáá¬ážááŒá®áž cp ááŒáá·áºááá¯ááºáá»á¬ážááá¯áá°ážáá°ááŒááºážááááºáááºáá¬ááŒááºááŸá¯ááºážááŒáá·áºáá»áááºáááºááŒááºážáááºá¡ááœááºááŒááºáááºáááºá á¥ááá¬á¡á¬ážááŒáá·áºá Chrome 96 (áá¯ááºá¡ááœááºá¡á á¬áž 1.89 GB) ááá¯áááºáá±á¬ááºáá±á¬á¡áá« GNU gold ááá¯á¡áá¯á¶ážááŒá¯áá¬ážáá±á¬ 8-core ááœááºáá»á°áá¬ááœáẠc debuginfo executables áá»á¬ážááá¯áááºáá±á¬ááºááẠ53 á áá¹ááá·áºááŒá¬áááºá LLVM lld á¡ááœáẠ11.7 á áá¹ááá·áºááŸáá·áº Mold á¡ááœáẠ2.2 á áá¹ááá·áºáá¬ááŒá¬ááẠ(26 ááááºááá¯ááá¯ááŒááºáááºááẠGNU ááœáŸá±)á Clang 13 (3.18 GB) á GNU ááœáŸá±ááᯠáá»áááºáááºáá±á¬á¡áá« 64 á áá¹ááá·áºááŒá¬áááºá LLVM lld ááẠ5.8 á áá¹ááá·áºááŒá¬ááŒá®áž Mold ááẠ2.9 á áá¹ááá·áºááŒá¬áááºá Firefox 89 (1.64 GB) ááᯠáá»áááºáááºáá±á¬á¡áá«á GNU gold ááẠ32.9 á áá¹ááá·áº ááŒá¬áááºá LLVM lld ááẠ6.8 á áá¹ááá·áº ááŒá¬ááŒá®áž Mold ááẠ1.4 á áá¹ááá·áº ááŒá¬áááºá
ááá·áºááºá¡áá»áááºááᯠáá»áŸá±á¬á·áá»ááŒááºážááẠá¡ááŸá¬ážááŸá¬ááŒááºááŒááºážááŸáá·áº á ááºážáááºááŒááºážááŒá±á¬ááºážáá²ááŸá¯áá»á¬ážá¡ááœááºáž áá¯ááºáá±á¬ááºááá¯ááºáá±á¬ ááá¯ááºáá»á¬ážáá¯ááºáá±ážááŒááºážáá¯ááºáááºážá ááºááœáẠá á±á¬áá·áºááá¯ááºážáá»áááºááᯠáá»áŸá±á¬á·áá»ááŒááºážááŒáá·áº ááŒá®ážáá¬ážáá±á¬ááá±á¬áá»ááºáá»á¬ážááᯠáá±á¬áºáá±á¬ááºáá¬ááœáẠá¡áá¯á¶ážááŒá¯ááá¯ááºá áœááºážááᯠááá¯ááá¯áá±á¬ááºážááœááºá á±áá«áááºá áá¯ááºááŒá±á¬ááºážáá²ááŸá¯ááá¯ááºážááŒá®ážáá±á¬áẠá¡ááŒá®ážáááºáá»áááºáááºááŒááºážááᯠá á±á¬áá·áºááá¯ááºážáááŒááºážá¡ááŒáẠMold ááẠMulti-core á áá áºáá»á¬ážááœáẠááŸáááŒá®ážáá¬ážááá·áºááºáá»á¬ážá á áœááºážáá±á¬ááºááẠáá¶á·áá»ááºážááŸá¯ááŸáá·áº áááá¯á¡ááºáá² á¡ááŒá±áá¶ááœá²ááŒá¬ážáá±á¬ áá»áááºáááºááŸá¯áááá¯áá¬ááᯠá ááºážááŒáá·áºááá¯á áááºááŒá±á¬áá·áº Mold ááẠááŸá¯á¶á·áá±á¬áºáá¶áá²á·ááá«áááºá ááá¯ážááŒáŸáá·áºáá»áááºáááºááŒááºážáá²á·ááá¯á·áá±á¬ ááŸá¯ááºááœá±ážáá±á¬ áá±á¬áºáááºáá»á¬ážá
Mold ááŸá compiler á០ááŒááºáááºáá¬ážáá±á¬ á¡áá¬ááá¹áá¯ááá¯ááºá¡áá»á¬ážá¡ááŒá¬ážá០executable ááá¯ááºáá
áºáá¯ááᯠáá»áááºáááºááŒááºážá á
áœááºážáá±á¬ááºáááºááẠááá¯ááá¯ááŒááºáááºáá±á¬ algorithms áá»á¬ážááᯠá¡áá¯á¶ážááŒá¯áᬠáááŸáááá¯ááºáá±á¬ CPU cores áá»á¬ážááŒá¬ážááœáẠáá¯ááºáá±á¬ááºáá»ááºáá»á¬ážááᯠáááºááŒáœá
áœá¬ á¡ááŒáá¯ááºáá¯ááºáá±á¬ááºááŒááºážááŸáá·áº ááá¯ááá¯áááá±á¬ááºáá±á¬ áá±áá¬ááœá²á·á
ááºážáá¯á¶áá»á¬ážááᯠá¡áá¯á¶ážááŒá¯ááŒááºážááŒáá·áº áááŸáááá¯ááºáá«áááºá á¥ááá¬á¡á¬ážááŒáá·áºá Mold ááẠááá¯ááºáá»á¬ážááá¯áá°ážáá°ááŒááºážá á¡áá¬ááá¹áá¯ááá¯ááºáá»á¬ážááᯠááŸááºáá¬ááºáá²ááá¯á·ááŒáá¯áááºááá°ááŒááºážá á
á¬áá¯á¶ážáá»á¬ážááá¯ááŒá±ááŸááºážááá·áºá¡áá« á¡ááŒáẠhash tables áá»á¬ážááá¯á¡áá¯á¶ážááŒá¯ááŒááºážá áá®ážááŒá¬áž thread áá
áºáá¯ááœáẠáá±áá¬ááœáŸá±á·ááŒááºážááá¬ážáá»á¬ážááᯠá
áááºááºáááºááŒááºážááŸáá·áº ááá°áá®áá±á¬ááá¯ááºáá»á¬ážááœáẠáááºáá«ááá²áá² áá±á«ááºážá
ááºáá¬ážáá±á¬á¡ááá¯ááºážáá»á¬ážááᯠááœá¬ážáá°ááŒááºážááŸáá·áºá¡áá° Mold ááẠááŒááºážáááºáá±á¬ááœááºáá»ááºááŸá¯áá»á¬ážáá¯ááºáá±á¬ááºááá·áºáááºážááá¬ááᯠáá¯ááºáá±á¬ááºáááºá
source: opennet.ru