Elfshaker նախագիծը մշակում է ELF ֆայլերի տարբերակների կառավարման համակարգ:

Հրապարակվել է elfshaker նախագծի առաջին թողարկումը՝ երկուական տարբերակի կառավարման համակարգ, որը օպտիմիզացված է ELF գործարկվող սարքերի փոփոխություններին հետևելու համար: Համակարգը պահպանում է երկուական բծերը ֆայլերի միջև, թույլ է տալիս ստեղնով առբերել ցանկալի տարբերակը, ինչը զգալիորեն արագացնում է «git bisect» գործողությունը և մեծապես նվազեցնում է օգտագործվող սկավառակի տարածությունը: Ծրագրի կոդը բաշխվում է Apache-2.0 լիցենզիայի ներքո:

Ծրագիրը աչքի է ընկնում իր բարձր արդյունավետությամբ երկուական փոփոխությունները պահելու մեծ թվով նմանատիպ երկուական ֆայլերում, օրինակ, որոնք ստացվել են մեկ նախագծի հավելյալ կառուցման ժամանակ: Մասնավորապես, Clang կոմպիլյատորի երկու հազար վերակառուցման արդյունքները (յուրաքանչյուր վերակառուցումն արտացոլում է փոփոխությունը յուրաքանչյուր կատարումից հետո) կարող են պահվել 100 ՄԲ չափի մեկ փաթեթային ֆայլում, որը 4000 անգամ փոքր է, քան կպահանջվեր առանձին պահելու դեպքում: .

Տվյալ ֆայլից ցանկացած վիճակ հանելը տևում է 2-4 վայրկյան (60 անգամ ավելի արագ, քան git բիսեկցիոն LLVM կոդը), ինչը թույլ է տալիս արագ հանել նախագծի գործադիրների ցանկալի տարբերակը՝ առանց աղբյուրից վերակառուցելու կամ նախկինում կառուցվածի յուրաքանչյուր տարբերակի պատճենը պահելու։ գործարկելի։

Source: opennet.ru

Добавить комментарий