Π€Π΅ΡΡΠ±ΡΠΊ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡΠ° ΠΎΠ±ΡΠ°Π²ΠΈ Π·Π° ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠ° Π½Π° Ρ
Π°Ρ ΡΠ°Π±Π΅Π»ΠΈ ΡΠΎ ΠΎΡΠ²ΠΎΡΠ΅Π½ ΠΊΠΎΠ΄ F14, ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠ°Π½ Π·Π° Π΅ΡΠΈΠΊΠ°ΡΠ½Π° ΠΏΠΎΡΡΠΎΡΡΠ²Π°ΡΠΊΠ° Π½Π° ΠΌΠ΅ΠΌΠΎΡΠΈΡΠ°. F14 ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠΈ Π²ΠΎ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ°ΡΠ° Π½Π° Facebook ΠΊΠ°ΠΊΠΎ Π·Π°ΠΌΠ΅Π½Π° Π·Π° ΠΏΠΎΠ²Π΅ΡΠ΅ΡΠΎ ΡΠΈΠΏΠΎΠ²ΠΈ Ρ
Π°Ρ ΡΠ°Π±Π΅Π»ΠΈ ΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ° Π½Π°ΠΌΠ°Π»ΠΈ ΠΏΠΎΡΡΠΎΡΡΠ²Π°ΡΠΊΠ°ΡΠ° Π½Π° ΠΌΠ΅ΠΌΠΎΡΠΈΡΠ° Π±Π΅Π· Π΄Π° Π³ΠΈ ΠΆΡΡΠ²ΡΠ²Π° ΠΏΠ΅ΡΡΠΎΡΠΌΠ°Π½ΡΠΈΡΠ΅. F14 Π·Π°Π±Π΅Π»Π΅ΠΆΠ»ΠΈΠ²ΠΎ Π³ΠΈ Π½Π°Π΄ΠΌΠΈΠ½ΡΠ²Π° ΡΠ°Π±Π΅Π»ΠΈΡΠ΅ Π·Π° Ρ
Π°Ρ google::sparse_hash_map, ΠΊΠΎΠΈ Π΄ΠΎΡΠ΅Π³Π° ΡΠ΅ ΡΠΌΠ΅ΡΠ°Π° Π·Π° Π½Π°ΡΠ΅ΡΠΈΠΊΠ°ΡΠ½ΠΈ Π²ΠΎ ΠΎΠ΄Π½ΠΎΡ Π½Π° ΠΏΠΎΡΡΠΎΡΡΠ²Π°ΡΠΊΠ°ΡΠ° Π½Π° ΠΌΠ΅ΠΌΠΎΡΠΈΡΠ°. ΠΡΠΎΠ΅ΠΊΡΠ½ΠΈΠΎΡ ΠΊΠΎΠ΄ Π΅ Π½Π°ΠΏΠΈΡΠ°Π½ Π²ΠΎ C++ ΠΈ Π΅ Π²ΠΊΠ»ΡΡΠ΅Π½ Π²ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° ΠΡΠ΄ΠΎΡΡ.
F14 ΡΠ΅ ΠΎΠ΄Π½Π΅ΡΡΠ²Π° Π½Π° Π°Π»Π³ΠΎΡΠΈΡΠΌΠΈ ΡΠΎ ΡΠΈΡΡΠ΅ΠΌ Π·Π° ΡΠ΅Π·ΠΎΠ»ΡΡΠΈΡΠ° Π½Π° ΡΡΠ΄ΠΈΡ Π±Π°Π·ΠΈΡΠ°Π½ Π½Π° Π΄Π²ΠΎΡΠ½ΠΎ Ρ
Π°ΡΠΈΡΠ°ΡΠ΅ ΡΠΎ 14 ΡΠ΅ΠΊΠ²Π΅Π½ΡΠΈ Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠΎΡΠΈ (ΡΠΈΠ½ΡΠΈΡ ΠΎΠ΄ 14 ΡΠ»ΠΎΡΠΎΠ²ΠΈ ΡΠ΅ ΡΠΊΠ»Π°Π΄ΠΈΡΠ° Π²ΠΎ Π΅Π΄Π½Π° ΠΊΠ»Π΅ΡΠΊΠ° Π½Π° ΡΠ°Π±Π΅Π»Π° Π·Π° Ρ
Π°Ρ, Π° ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»ΠΎΡ ΠΏΠΎΠΌΠ΅ΡΡ ΡΠ΅Π»ΠΈΠΈΡΠ΅ ΡΠ΅ ΠΏΡΠ΅ΡΠΌΠ΅ΡΡΠ²Π° ΡΠΎ ΠΏΠΎΠΌΠΎΡ Π½Π° ΠΏΠΎΠΌΠΎΡΠ½Π° Ρ
Π°Ρ ΡΡΠ½ΠΊΡΠΈΡΠ°). ΠΠ° Π΄Π° ΡΠ΅ Π·Π°Π±ΡΠ·Π°Π°Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈΡΠ΅ Π·Π° ΡΠΈΠ»ΡΡΠΈΡΠ°ΡΠ΅ Π½Π° ΡΠ΅Π»ΠΈΠΈΡΠ΅, ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠ°ΡΠ° ΠΊΠΎΡΠΈΡΡΠΈ Π²Π΅ΠΊΡΠΎΡΡΠΊΠΈ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ SSE2 Π·Π° ΡΠΈΡΡΠ΅ΠΌΠΈΡΠ΅ x86_64 ΠΈ NEON Π·Π° Aarch64, ΠΊΠΎΠΈ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡΠ²Π°Π°Ρ ΠΏΠ°ΡΠ°Π»Π΅Π»ΠΈΠ·ΠΈΡΠ°ΡΠ΅ Π½Π° ΠΈΠ·Π²ΡΡΡΠ²Π°ΡΠ΅ΡΠΎ Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈΡΠ΅ Π·Π° ΠΈΠ·Π±ΠΎΡ Π½Π° ΡΠ»ΠΎΡΠΎΠ²ΠΈ ΡΠΎ ΡΠΈΠ½ΡΠΈΡΠΈ Π·Π° ΠΊΠ»ΡΡΠ΅Π²ΠΈ ΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠ²Π°ΡΠ΅ Π½Π° ΠΊΠ»ΡΡΠ΅Π²ΠΈΡΠ΅ Π²ΠΎ Π»Π°Π½Π΅ΡΠΎΡ. ΠΠ»ΠΎΠΊΠΎΠ²ΠΈ ΠΎΠ΄ 14 ΡΠ»ΠΎΡΠΎΠ²ΠΈ ΡΠ΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠ²Π°Π°Ρ ΠΈΡΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½ΠΎ, ΡΡΠΎ Π΅ ΠΎΠΏΡΠΈΠΌΠ°Π»Π½Π° ΡΠ°ΠΌΠ½ΠΎΡΠ΅ΠΆΠ° ΠΏΠΎΠΌΠ΅ΡΡ Π΅ΡΠΈΠΊΠ°ΡΠ½ΠΎΡΡΠ° Π½Π° ΠΊΠΎΡΠΈΡΡΠ΅ΡΠ΅ΡΠΎ Π½Π° ΠΊΠ΅ΡΠΎΡ Π½Π° ΠΏΡΠΎΡΠ΅ΡΠΎΡΠΎΡ ΠΈ Π±ΡΠΎΡΠΎΡ Π½Π° ΡΡΠ΄ΠΈΡΠΈ.
ΠΠΎΡΠ΅Π±Π½Π° ΠΊΠ°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠ° Π½Π° F14 Π΅ ΠΌΠΎΠΆΠ½ΠΎΡΡΠ° Π·Π° ΠΈΠ·Π±ΠΎΡ Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΡΡΡΠ°ΡΠ΅Π³ΠΈΠΈ Π·Π° ΡΠΊΠ»Π°Π΄ΠΈΡΠ°ΡΠ΅ ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ:
- F14NodeMap - ΡΡΠΎΡΠΈ Π½Π°ΡΠΌΠ°Π»ΠΊΡ ΠΌΠ΅ΠΌΠΎΡΠΈΡΠ° Π·Π° Π³ΠΎΠ»Π΅ΠΌΠΈ ΠΈ ΡΡΠ΅Π΄Π½ΠΈ ΠΊΠ»ΡΡΠ΅Π²ΠΈ. ΠΠ±Π΅Π·Π±Π΅Π΄ΡΠ²Π° Π΄Π΅ΠΊΠ° Π΅Π»Π΅ΠΌΠ΅Π½ΡΠΈΡΠ΅ ΡΠ΅ Π·Π°ΡΡΠ²ΡΠ²Π°Π°Ρ ΠΈΠ½Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ ΡΠΎ ΠΏΠΎΠ²ΠΈΠΊ Π΄ΠΎ malloc ΠΏΡΠΈ ΡΠ΅ΠΊΠΎΠ΅ Π²ΠΌΠ΅ΡΠ½ΡΠ²Π°ΡΠ΅;
- F14ValueMap - ΠΎΠ±Π΅Π·Π±Π΅Π΄ΡΠ²Π° ΠΌΠΈΠ½ΠΈΠΌΠ°Π»Π½Π° ΠΏΠΎΡΡΠΎΡΡΠ²Π°ΡΠΊΠ° Π½Π° ΠΌΠ΅ΠΌΠΎΡΠΈΡΠ° Π·Π° ΠΌΠ°Π»ΠΈ ΠΊΠΎΠΏΡΠΈΡΠ°. ΠΠ»Π΅ΠΌΠ΅Π½ΡΠΈΡΠ΅ ΡΠ΅ ΡΠΊΠ»Π°Π΄ΠΈΡΠ°Π°Ρ Π²ΠΎ ΡΠ°ΠΌΠΈΡΠ΅ ΡΠ΅Π»ΠΈΠΈ (inline). ΠΠ° ΡΡΠ΅Π΄Π½ΠΈ ΠΈ Π³ΠΎΠ»Π΅ΠΌΠΈ ΠΊΠ»ΡΡΠ΅Π²ΠΈ, ΠΎΠ²ΠΎΡ ΠΏΡΠΈΡΡΠ°ΠΏ Π²ΠΎΠ΄ΠΈ Π΄ΠΎ Π·Π°Π±Π΅Π»Π΅ΠΆΠ»ΠΈΠ²Π° Π½Π°Π΄ΠΌΠΎΡΡΠΊΠ° ΠΌΠ΅ΠΌΠΎΡΠΈΡΠ°;
- F14VectorMap - ΡΠ°Π±ΠΎΡΠΈ ΠΏΠΎΠ±ΡΠ·ΠΎ Π·Π° Π³ΠΎΠ»Π΅ΠΌΠΈ ΡΠ°Π±Π΅Π»ΠΈ ΠΈ ΡΠ»ΠΎΠΆΠ΅Π½ΠΈ ΠΊΠΎΠΏΡΠΈΡΠ°, Π½ΠΎ ΠΏΠΎΠ±Π°Π²Π½ΠΎ Π·Π° Π΅Π΄Π½ΠΎΡΡΠ°Π²Π½ΠΈ ΠΊΠΎΠΏΡΠΈΡΠ° ΠΈ ΠΌΠ°Π»ΠΈ ΠΌΠ°ΡΠΈ. ΠΠ»Π΅ΠΌΠ΅Π½ΡΠΈΡΠ΅ ΡΠ΅ ΡΠΏΠ°ΠΊΡΠ²Π°Π½ΠΈ Π²ΠΎ ΠΊΠΎΠ½ΡΠΈΠ½ΡΠΈΡΠ°Π½ΠΎ Π½Π°ΡΠ΅Π»Π΅Π½Π° Π½ΠΈΠ·Π° ΠΈ Π°Π΄ΡΠ΅ΡΠΈΡΠ°Π½ΠΈ ΡΠΎ 32-Π±ΠΈΡΠ΅Π½ ΠΈΠ½Π΄Π΅ΠΊΡΠ΅Π½ ΠΏΠΎΠΊΠ°ΠΆΡΠ²Π°Ρ;
- F14FastMap Π΅ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡΠ°Π½Π° ΡΡΡΠ°ΡΠ΅Π³ΠΈΡΠ°. ΠΠΊΠΎ ΠΊΠ»ΡΡΠΎΡ Π΅ ΠΏΠΎΠΌΠ°Π» ΠΎΠ΄ 24 Π±Π°ΡΡΠΈ, ΡΠΎΠ³Π°Ρ ΡΠ΅ ΠΈΠ·Π±ΠΈΡΠ° F14ValueMap, Π° Π°ΠΊΠΎ ΠΏΠΎΠ²Π΅ΡΠ΅, ΡΠ΅ ΠΈΠ·Π±ΠΈΡΠ° F14VectorMap.
ΠΠ·Π²ΠΎΡ: opennet.ru