tg-me.com/Golang_google/2864
Last Update:
Π Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ
Dolt (Π°Π½Π°Π»ΠΎΠ³ Git, Π½ΠΎ Π΄Π»Ρ SQL-ΡΠ°Π±Π»ΠΈΡ) ΠΏΠΎΡΠ»Π΅ ΡΠ΅ΡΠ°ΠΊΡΠΎΡΠΈΠ½Π³Π° ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π±Π΅Π½ΡΠΌΠ°ΡΠΊΠΎΠ² (types_scan) Π²Π½Π΅Π·Π°ΠΏΠ½ΠΎ ΡΡΠ°Π» ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π° 30% ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅. ΠΡΠΈΡΠΈΠ½Π°? ΠΠ°Π·Π°Π»ΠΎΡΡ Π±Ρ, Π½Π΅Π²ΠΈΠ½Π½Π°Ρ ΡΡΡΠΎΡΠΊΠ° ΠΊΠΎΠ΄Π°.
π Π§ΡΠΎ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»ΠΎ
ΠΠ΅ΡΠΎΠ΄ GetBytes() Π½Π°ΡΠ°Π» Π²ΡΠ·ΡΠ²Π°ΡΡ ReadBytes() Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° ValueStore. ΠΡΡ Π²ΡΠ³Π»ΡΠ΄Π΅Π»ΠΎ Π»ΠΎΠ³ΠΈΡΠ½ΠΎ, ΠΏΠΎΠΊΠ° Π½Π΅ Π²ΠΊΠ»ΡΡΠΈΠ»ΠΈ ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²ΡΠΈΠΊ Go ΠΈ Π½Π΅ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΠ»ΠΈ ΡΡΡΠ°Π½Π½ΡΡ Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΡ:
π runtime.newobject Π²ΡΠ·ΡΠ²Π°Π»ΡΡ ΡΠ»ΠΈΡΠΊΠΎΠΌ ΡΠ°ΡΡΠΎ β ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π΄Π΅Π»Π°Π»Π° ΠΌΠ½ΠΎΠ³ΠΎ Π»ΠΈΡΠ½ΠΈΡ
Π°Π»Π»ΠΎΠΊΠ°ΡΠΈΠΉ Π² ΠΊΡΡΠ΅.
π¦ ΠΠ΄Π΅ Π·Π°ΡΡΡΠ° ΡΠΎΠ±Π°ΠΊΠ°
func (vs nodeStore) ReadBytes(...) ...
ΠΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π» ΠΏΡΠΈΡΠΌΠ½ΠΈΠΊ ΠΏΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ (vs nodeStore). ΠΡΠΎ Π·Π½Π°ΡΠΈΡ, ΡΡΠΎ Π²ΡΡ ΡΡΡΡΠΊΡΡΡΠ° ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π»Π°ΡΡ ΠΏΡΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Π²ΡΠ·ΠΎΠ²Π΅ ΠΌΠ΅ΡΠΎΠ΄Π°, Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ ΠΎΠ½Π° Π±ΠΎΠ»ΡΡΠ°Ρ.
π ΠΠ°ΠΊ ΠΏΠΎΡΠΈΠΊΡΠΈΠ»ΠΈ
ΠΡΠΎΡΡΠΎ ΠΏΠΎΠΌΠ΅Π½ΡΠ»ΠΈ Π½Π° ΠΏΡΠΈΡΠΌΠ½ΠΈΠΊ ΠΏΠΎ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ:
func (vs *nodeStore) ReadBytes(...) ...
ΠΡΠ°Π»Ρ β Π°Π»Π»ΠΎΠΊΠ΅ΠΉΡΠ½Ρ ΠΈΡΡΠ΅Π·Π»ΠΈ, ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²ΠΈΠ»Π°ΡΡ.
π§ ΠΡΠ²ΠΎΠ΄
β ΠΠ΅ΡΠΎΠ΄Ρ Ρ ΠΏΡΠΈΡΠΌΠ½ΠΈΠΊΠΎΠΌ ΠΏΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ = ΡΠΈΡΠΊ Π»ΠΈΡΠ½Π΅Π³ΠΎ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ Π°Π»Π»ΠΎΠΊΠ°ΡΠΈΠΉ
π ΠΠ°ΠΆΠ΅ ΠΎΠ΄ΠΈΠ½ ΠΌΠ°Π»Π΅Π½ΡΠΊΠΈΠΉ ΠΌΠ΅ΡΠΎΠ΄ ΠΌΠΎΠΆΠ΅Ρ ΡΠ΅Π·ΠΊΠΎ Π·Π°ΠΌΠ΅Π΄Π»ΠΈΡΡ Π²Π°Ρ ΠΊΠΎΠ΄
π ΠΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²ΠΊΠ° Π² Go β ΠΌΠΎΡΠ½ΡΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ. ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉ pprof!
ΠΠΎΠ»Π½ΡΠΉ ΡΠ°Π·Π±ΠΎΡ Π² Π±Π»ΠΎΠ³Π΅ DoltHub
ΠΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΠΏΡΠΎ Dolt
@golang_google