ΠΠ°ΡΠΊΡΠΎΡΠΎΡΡ ΠΎΡΠ²ΠΎΡΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΠΏΠΎΠ΄ Π»ΠΈΡΠ΅Π½ΡΠ°ΡΠ° ΠΠΠ’
ΠΠ»ΡΡΠ½Π°ΡΠ° ΠΊΠ°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠ° Π½Π° mimalloc Π΅ Π½Π΅Π³ΠΎΠ²Π°ΡΠ° ΠΊΠΎΠΌΠΏΠ°ΠΊΡΠ½Π° ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠ° (ΠΏΠΎΠΌΠ°Π»ΠΊΡ ΠΎΠ΄ 3500 Π»ΠΈΠ½ΠΈΠΈ ΠΊΠΎΠ΄) ΠΈ ΠΌΠ½ΠΎΠ³Ρ Π²ΠΈΡΠΎΠΊΠΈ ΠΏΠ΅ΡΡΠΎΡΠΌΠ°Π½ΡΠΈ. ΠΠ
ΠΠ° Π΄Π° ΡΠ΅ ΠΎΡΠ΅Π½ΠΈ ΠΏΠ΅ΡΡΠΎΡΠΌΠ°Π½ΡΠΈΡΠ΅, Π·Π±ΠΈΡ Π½Π° ΠΏΠΎΡΡΠΎΠ΅ΡΠΊΠΈ
ΠΠΈΡΠΎΠΊΠΈΡΠ΅ ΠΏΠ΅ΡΡΠΎΡΠΌΠ°Π½ΡΠΈ ΡΠ΅ ΠΏΠΎΡΡΠΈΠ³Π½ΡΠ²Π°Π°Ρ Π³Π»Π°Π²Π½ΠΎ ΠΏΡΠ΅ΠΊΡ ΠΊΠΎΡΠΈΡΡΠ΅ΡΠ΅ Π½Π° ΡΠΏΠΎΠ΄Π΅Π»ΡΠ²Π°ΡΠ΅ Π½Π° Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΠΈ ΡΠΏΠΈΡΠΎΡΠΈ. ΠΠ°ΠΌΠ΅ΡΡΠΎ Π΅Π΄Π½Π° Π³ΠΎΠ»Π΅ΠΌΠ° Π»ΠΈΡΡΠ°, mimalloc ΠΊΠΎΡΠΈΡΡΠΈ ΡΠ΅ΡΠΈΡΠ° ΠΏΠΎΠΌΠ°Π»ΠΈ ΡΠΏΠΈΡΠΎΡΠΈ, ΠΎΠ΄ ΠΊΠΎΠΈ ΡΠ΅ΠΊΠΎΡΠ° Π΅ Π²ΡΠ·Π°Π½Π° Π·Π° ΠΌΠ΅ΠΌΠΎΡΠΈΡΠΊΠ° ΡΡΡΠ°Π½ΠΈΡΠ°. ΠΠ²ΠΎΡ ΠΏΡΠΈΡΡΠ°ΠΏ ΡΠ° Π½Π°ΠΌΠ°Π»ΡΠ²Π° ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠ°ΡΠ° ΠΈ ΡΠ° Π·Π³ΠΎΠ»Π΅ΠΌΡΠ²Π° Π»ΠΎΠΊΠ°ΡΠΈΡΠ°ΡΠ° Π½Π° ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈΡΠ΅ Π²ΠΎ ΠΌΠ΅ΠΌΠΎΡΠΈΡΠ°ΡΠ°. ΠΠ΅ΠΌΠΎΡΠΈΡΠΊΠ°ΡΠ° ΡΡΡΠ°Π½ΠΈΡΠ° Π΅ Π³ΡΡΠΏΠΈΡΠ°Π½ ΡΠ΅Ρ Π½Π° Π±Π»ΠΎΠΊΠΎΠ²ΠΈ ΡΠΎ ΡΠ»ΠΈΡΠ½Π° Π³ΠΎΠ»Π΅ΠΌΠΈΠ½Π°. ΠΠ° 64-Π±ΠΈΡΠ½ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ, Π³ΠΎΠ»Π΅ΠΌΠΈΠ½Π°ΡΠ° Π½Π° ΡΡΡΠ°Π½ΠΈΡΠ°ΡΠ° Π΅ ΠΎΠ±ΠΈΡΠ½ΠΎ 64 KB. ΠΠΊΠΎ Π½Π΅ ΠΎΡΡΠ°Π½Π°Ρ ΠΎΠΊΡΠΏΠΈΡΠ°Π½ΠΈ Π±Π»ΠΎΠΊΠΎΠ²ΠΈ Π½Π° ΡΡΡΠ°Π½ΠΈΡΠ°ΡΠ°, ΡΠ°Π° ΡΠ΅Π»ΠΎΡΠ½ΠΎ ΡΠ΅ ΠΎΡΠ»ΠΎΠ±ΠΎΠ΄ΡΠ²Π° ΠΈ ΠΌΠ΅ΠΌΠΎΡΠΈΡΠ°ΡΠ° ΡΠ΅ Π²ΡΠ°ΡΠ° Π²ΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΈΠΎΡ ΡΠΈΡΡΠ΅ΠΌ, ΡΡΠΎ Π³ΠΈ Π½Π°ΠΌΠ°Π»ΡΠ²Π° ΡΡΠΎΡΠΎΡΠΈΡΠ΅ Π·Π° ΠΌΠ΅ΠΌΠΎΡΠΈΡΠ° ΠΈ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠ°ΡΠ° Π²ΠΎ Π΄ΠΎΠ»Π³ΠΎΡΡΠ°ΡΠ½ΠΈΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈ.
ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ Π²ΠΊΠ»ΡΡΠΈ Π²ΠΎ ΡΠ°Π·Π°ΡΠ° Π½Π° ΠΏΠΎΠ²ΡΠ·ΡΠ²Π°ΡΠ΅ ΠΈΠ»ΠΈ Π΄Π° ΡΠ΅ Π²ΡΠΈΡΠ° Π·Π° Π²Π΅ΡΠ΅ ΡΠΎΡΡΠ°Π²Π΅Π½Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ° (βLD_PRELOAD=/usr/bin/libmimalloc.so myprogramβ). ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° ΠΈΡΡΠΎ ΡΠ°ΠΊΠ° ΠΎΠ±Π΅Π·Π±Π΅Π΄ΡΠ²Π°
ΠΠΎΠΆΠ½ΠΎ Π΅ Π΄Π° ΡΠ΅ ΠΈΠ·Π³ΡΠ°Π΄ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° Π²ΠΎ Π±Π΅Π·Π±Π΅Π΄Π΅Π½ ΡΠ΅ΠΆΠΈΠΌ, Π²ΠΎ ΠΊΠΎΡ ΡΠΏΠ΅ΡΠΈΡΠ°Π»Π½ΠΈΡΠ΅ ΡΡΡΠ°Π½ΠΈΡΠΈ Π·Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° ΠΌΠ΅ΠΌΠΎΡΠΈΡΠ°ΡΠ° (ΡΡΡΠ°Π½ΠΈΡΠΈ-ΡΡΡΠ°Π½ΠΈΡΠΈ) ΡΠ΅ Π·Π°ΠΌΠ΅Π½ΡΠ²Π°Π°Ρ Π½Π° Π³ΡΠ°Π½ΠΈΡΠΈΡΠ΅ Π½Π° Π±Π»ΠΎΠΊΠΎΡ ΠΈ ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠΈ ΡΠ°Π½Π΄ΠΎΠΌΠΈΠ·Π°ΡΠΈΡΠ° Π½Π° Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΡΠ° Π½Π° Π±Π»ΠΎΠΊΠΎΠ²ΠΈ ΠΈ ΡΠΈΡΡΠΈΡΠ°ΡΠ΅ Π½Π° Π»ΠΈΡΡΠΈ Π½Π° ΠΎΡΠ»ΠΎΠ±ΠΎΠ΄Π΅Π½ΠΈ Π±Π»ΠΎΠΊΠΎΠ²ΠΈ. ΠΠ°ΠΊΠ²ΠΈΡΠ΅ ΠΌΠ΅ΡΠΊΠΈ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡΠ²Π°Π°Ρ Π±Π»ΠΎΠΊΠΈΡΠ°ΡΠ΅ Π½Π° Π½Π°ΡΡΠ΅ΡΡΠΈΡΠ΅ ΡΠ΅Ρ Π½ΠΈΠΊΠΈ Π·Π° ΠΈΡΠΊΠΎΡΠΈΡΡΡΠ²Π°ΡΠ΅ Π½Π° ΠΏΡΠ΅Π»Π΅Π²Π°ΡΠ°ΡΠ° Π½Π° Π±Π°ΡΠ΅ΡΠΈΡΠ΅ Π±Π°Π·ΠΈΡΠ°Π½ΠΈ Π½Π° Π³ΡΠ°ΠΌΠ°Π΄Π°. ΠΠΎΠ³Π° ΡΠ΅ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΠΈΡΠ΅ Π±Π΅Π·Π±Π΅Π΄Π΅Π½ ΡΠ΅ΠΆΠΈΠΌ, ΠΏΠ΅ΡΡΠΎΡΠΌΠ°Π½ΡΠΈΡΠ΅ ΡΠ΅ Π½Π°ΠΌΠ°Π»ΡΠ²Π°Π°Ρ Π·Π° ΠΏΡΠΈΠ±Π»ΠΈΠΆΠ½ΠΎ 3%.
ΠΠ΅ΡΡ ΠΊΠ°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈΡΠ΅ Π½Π° mimalloc, ΠΈΡΡΠΎ ΡΠ°ΠΊΠ°, ΡΠ΅ Π·Π°Π±Π΅Π»Π΅ΠΆΡΠ²Π° Π΄Π΅ΠΊΠ° Π½Π΅ Π΅ ΠΏΠΎΠ΄Π»ΠΎΠΆΠ΅Π½ Π½Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ ΡΠΎ Π½Π°Π΄ΡΠ΅Π½ΠΎΡΡ ΠΏΠΎΡΠ°Π΄ΠΈ Π³ΠΎΠ»Π΅ΠΌΠ° ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠ°. ΠΠΎ Π½Π°ΡΠ»ΠΎΡΠΎΡΠΎ ΡΡΠ΅Π½Π°ΡΠΈΠΎ, ΠΏΠΎΡΡΠΎΡΡΠ²Π°ΡΠΊΠ°ΡΠ° Π½Π° ΠΌΠ΅ΠΌΠΎΡΠΈΡΠ° ΡΠ΅ Π·Π³ΠΎΠ»Π΅ΠΌΡΠ²Π° Π·Π° 0.2% Π·Π° ΠΌΠ΅ΡΠ°ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ ΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° Π΄ΠΎΡΡΠΈΠ³Π½Π΅ 16.7% Π·Π° Π΄ΠΈΡΡΡΠΈΠ±ΡΠΈΡΠ°Π½Π° ΠΌΠ΅ΠΌΠΎΡΠΈΡΠ°. ΠΠ° Π΄Π° ΠΈΠ·Π±Π΅Π³Π½Π΅ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠΈ ΠΏΡΠΈ ΠΏΡΠΈΡΡΠ°ΠΏ Π΄ΠΎ ΡΠ΅ΡΡΡΡΠΈ, mimalloc ΠΊΠΎΡΠΈΡΡΠΈ ΡΠ°ΠΌΠΎ Π°ΡΠΎΠΌΡΠΊΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ.
ΠΠ·Π²ΠΎΡ: opennet.ru