Heblaw am ddiwedd y gefnogaeth i Python 2.7, newid pwysig arall oedd cynnwys
Roedd proffilio'r cod presennol yn dangos bod y rhan fwyaf o'r amser cyfrifo yn cael ei dreulio yn galw'r swyddogaethau use_reduce a catpkgsplit gyda set ailadroddus o ddadleuon (er enghraifft, galwyd y swyddogaeth catpkgsplit 1 i 5 miliwn o weithiau). Er mwyn cyflymu pethau, defnyddiwyd geiriaduron i gadw canlyniadau'r swyddogaethau hyn. Yr opsiwn gorau ar gyfer storio storfa oedd y swyddogaeth lru_cache adeiledig, ond dim ond mewn datganiadau Python yr oedd ar gael gan ddechrau gyda 3.2. Ar gyfer cydweddoldeb Γ’ fersiynau cynharach, ychwanegwyd bonyn i gymryd lle lru_cache, ond fe wnaeth y penderfyniad i roi'r gorau i gefnogaeth i Python 2.7 yn Portage 3.0 symleiddio'r dasg yn fawr a'i gwneud hi'n bosibl gwneud heb yr haen hon.
Roedd defnyddioβr storfa wedi lleihau amser gweithreduβr gweithrediad βemerge -uDvpU βwith-bdeps=y @worldβ ar liniadur ThinkPad X220 o 5 munud 20 eiliad i 3 munud 16 eiliad (63%). Dangosodd profion ar systemau eraill gynnydd perfformiad o 48% o leiaf.
Ceisiodd y datblygwr a baratΓ΄dd y newid hefyd weithredu prototeip o'r cod datrys dibyniaeth yn C ++ neu Rust, ond roedd y dasg yn rhy anodd oherwydd bod angen trosglwyddo llawer iawn o god, ac roedd yn amheus a fyddai'r canlyniad yn werth yr ymdrech. .
Ffynhonnell: opennet.ru