Π‘Π΅Π³ΠΎΠ΄Π½Ρ, Π² ΡΠ²ΠΎΠΉ Π΄Π΅Π½Ρ ΡΠΎΠΆΠ΄Π΅Π½ΠΈΡ, Ρ
ΠΎΡΡ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠΈΡΡ Π²Π°ΠΌ ΠΊΠ½ΠΈΠ³Ρ π₯³
ΠΠ½ΠΈΠ³Π°, ΡΡΠΎ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ, must have.
Π£ΠΈΠ»ΡΡΠΌΡ ΠΠ½ΡΠΎΠ½ΠΈ. C++. ΠΡΠ°ΠΊΡΠΈΠΊΠ° ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ. β Π‘ΠΠ±.: ΠΠΈΡΠ΅Ρ, 2020. β 640 Ρ.: ΠΈΠ». β (Π‘Π΅ΡΠΈΡ Β«ΠΠ»Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΈΠΎΠ½Π°Π»ΠΎΠ²Β»). ISBN 978-5-4461-0831-2
Π‘ΡΡΠ»ΠΊΠ° Π²Π΅Π΄ΡΡ Π½Π° ΡΠ°ΠΉΡ ΠΈΠ·Π΄Π°ΡΠ΅Π»ΡΡΡΠ²Π°, Π½ΠΎ ΠΊΠ½ΠΈΠ³Ρ Π½Π΅ΡΠ»ΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ ΠΈ Π² ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅ Π² ΠΎΡΠΊΡΡΡΡΡ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠ°Ρ π
Π’Π°ΠΊΠΆΠ΅ Π΄Π°Ρ ΡΡΡΠ»ΠΊΡ Π½Π° ΠΈΡΡ ΠΎΠ΄Π½ΡΠ΅ ΠΊΠΎΠ΄Ρ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ² ΠΈΠ· ΠΊΠ½ΠΈΠ³ΠΈ. Π Π½Π° ΠΎΡΡΡΠ²ΠΎΠΊ ΠΈΠ· ΠΊΠ½ΠΈΠ³ΠΈ.
ΠΡΠΎ ΡΠΆΠ΅ ΡΠΈΡΠ°Π», ΠΏΠΎΠ΄Π΅Π»ΠΈΡΠ΅ΡΡ Π²ΠΏΠ΅ΡΠ°ΡΠ»Π΅Π½ΠΈΡΠΌΠΈ Π² Π½Π°ΡΠ΅ΠΌ ΡΠ°ΡΠ΅. ΠΠ½Π°Π΅ΡΠ΅ Π΄ΡΡΠ³ΠΈΠ΅ Ρ ΠΎΡΠΎΡΠΈΠ΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΏΠΎ ΡΠ΅ΠΌΠ΅ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, Π²ΡΡΠΎΠΊΠΎΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΡΡ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠΉ, GPGPU, ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ? ΠΠ°ΠΏΠΈΡΠΈΡΠ΅ ΠΎ Π½ΠΈΡ ! βοΈ
#ΠΊΠ½ΠΈΠ³Π° #ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΠΈΠ·ΠΌ #cpp
ΠΠ½ΠΈΠ³Π°, ΡΡΠΎ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ, must have.
Π£ΠΈΠ»ΡΡΠΌΡ ΠΠ½ΡΠΎΠ½ΠΈ. C++. ΠΡΠ°ΠΊΡΠΈΠΊΠ° ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ. β Π‘ΠΠ±.: ΠΠΈΡΠ΅Ρ, 2020. β 640 Ρ.: ΠΈΠ». β (Π‘Π΅ΡΠΈΡ Β«ΠΠ»Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΈΠΎΠ½Π°Π»ΠΎΠ²Β»). ISBN 978-5-4461-0831-2
Π‘ΡΡΠ»ΠΊΠ° Π²Π΅Π΄ΡΡ Π½Π° ΡΠ°ΠΉΡ ΠΈΠ·Π΄Π°ΡΠ΅Π»ΡΡΡΠ²Π°, Π½ΠΎ ΠΊΠ½ΠΈΠ³Ρ Π½Π΅ΡΠ»ΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ ΠΈ Π² ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅ Π² ΠΎΡΠΊΡΡΡΡΡ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠ°Ρ π
Π’Π°ΠΊΠΆΠ΅ Π΄Π°Ρ ΡΡΡΠ»ΠΊΡ Π½Π° ΠΈΡΡ ΠΎΠ΄Π½ΡΠ΅ ΠΊΠΎΠ΄Ρ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ² ΠΈΠ· ΠΊΠ½ΠΈΠ³ΠΈ. Π Π½Π° ΠΎΡΡΡΠ²ΠΎΠΊ ΠΈΠ· ΠΊΠ½ΠΈΠ³ΠΈ.
ΠΡΠΎ ΡΠΆΠ΅ ΡΠΈΡΠ°Π», ΠΏΠΎΠ΄Π΅Π»ΠΈΡΠ΅ΡΡ Π²ΠΏΠ΅ΡΠ°ΡΠ»Π΅Π½ΠΈΡΠΌΠΈ Π² Π½Π°ΡΠ΅ΠΌ ΡΠ°ΡΠ΅. ΠΠ½Π°Π΅ΡΠ΅ Π΄ΡΡΠ³ΠΈΠ΅ Ρ ΠΎΡΠΎΡΠΈΠ΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΏΠΎ ΡΠ΅ΠΌΠ΅ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, Π²ΡΡΠΎΠΊΠΎΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΡΡ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠΉ, GPGPU, ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ? ΠΠ°ΠΏΠΈΡΠΈΡΠ΅ ΠΎ Π½ΠΈΡ ! βοΈ
#ΠΊΠ½ΠΈΠ³Π° #ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΠΈΠ·ΠΌ #cpp
π2π₯2π1π1
ΠΠ΄ΡΠΌ Π΄Π°Π»ΡΡΠ΅... π
C#:
πΈ ΠΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΠ΅ ΠΏΠΎΡΠΎΠΊΠΈ ΠΎΡ Π‘ΡΠΈΠ²Π΅Π½Π° ΠΠ»ΠΈΡΠΈ (Π₯Π°Π±Ρ, 2021)
πΈ ΠΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΠΉ ΡΠ°ΡΡΠΈΠ½Ρ ΡΠΎΠ½: Π°Π½ΡΠΈΠΏΠ°ΡΡΠ΅ΡΠ½Ρ Π² ΡΠ°Π±ΠΎΡΠ΅ Ρ async/await Π² .NET (Π₯Π°Π±Ρ, 2019)
πΈ ΠΠ»Π°ΡΠ½ΡΠΉ ΠΊΡΡΡ C# Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅.
Π ΠΎΡΠΊΡΡΡΠΎΠΌ Π΄ΠΎΡΡΡΠΏΠ΅ Π½Π° YouTube Π΅ΡΡΡ, ΠΏΠΎ ΠΊΡΠ°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅ΡΠ΅, 2 ΡΡΠΎΠΊΠ° ΠΈΠ· ΠΊΡΡΡΠ° (2019):
πΉ ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅. C# ΠΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅.
πΉ ΠΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ async/await? ΠΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ Π‘#. C# ΠΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅.
πΈ ΠΠΈΠ΄Π΅ΠΎ ΠΊΡΡΡ C# Professional. Π£ΡΠΎΠΊ 15. Async Await (ΠΠ»Π΅ΠΊΡΠ°Π½Π΄Ρ Π¨Π΅Π²ΡΡΠΊ, 2015)
C++:
πΈ ΠΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΡΡΡ Π² Π‘++20. ΠΠΎΠΊΠ»Π°Π΄ Π² Π―Π½Π΄Π΅ΠΊΡΠ΅ (Π₯Π°Π±Ρ, 2021)
πΈ ΠΠ½Π°ΡΠΎΠΌΠΈΡ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΡ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΎΠ² Π² Π‘++ ΠΈ Π΄ΡΡΠ³ΠΈΡ ΡΠ·ΡΠΊΠ°Ρ (Π₯Π°Π±Ρ, 2021)
πΈ ΠΠΎΡΡΡΠΈΠ½Ρ C++20 Π² ΠΏΡΠΈΠΌΠ΅ΡΠ°Ρ (Π₯Π°Π±Ρ, 2020)
πΈ ΠΡΠΈΠ½Ρ ΡΠΎΠ½Π½Π°Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° C++ (YouTube, C++ Russia, 2019)
ΠΠ΅Π±ΠΎΠ»ΡΡΠΎΠΉ ΡΠΈΠΊΠ» ΡΡΠ°ΡΠ΅ΠΉ Π½Π° Π₯Π°Π±Ρ:
πΈ ΠΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΡΡΡ: Π½Π°Π·Π°Π΄ Π² Π±ΡΠ΄ΡΡΠ΅Π΅ (2013)
πΈ ΠΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΡΡΡ 2: ΡΠ΅Π»Π΅ΠΏΠΎΡΡΠ°ΡΠΈΡ ΡΠΊΠ²ΠΎΠ·Ρ ΠΏΠΎΡΡΠ°Π»Ρ (2014)
πΈ ΠΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΡΡΡ 3: Π‘ΡΠ±ΡΠ΅ΠΊΡΠΎΡΠ½Π°Ρ ΠΌΠΎΠ΄Π΅Π»Ρ (2017)
ΠΠΎΠΊΠ»Π°Π΄Ρ Π―Π½Π΄Π΅ΠΊΡ (YouTube):
πΉ ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ - ΠΡΠ·ΡΡΠ΅Π²ΡΠΊΠΈΠΉ ΠΠ²Π°Π½ (2014)
πΉ ΠΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΡΠΎΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ - ΠΡΠΈΠ³ΠΎΡΠΈΠΉ ΠΠ΅ΠΌΡΠ΅Π½ΠΊΠΎ (2014)
πΉ ΠΡΠΈΠ½Ρ ΡΠΎΠ½Π½Π°Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° C++ ΠΏΠΎΠ΄ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²Π° - ΠΠΌΠΈΡΡΠΈΠΉ ΠΠ΅ΡΡΠΈΠ»Π΅Π²ΡΠΊΠΈΠΉ (2014)
Python:
πΈΠΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΠΉ python Π±Π΅Π· Π³ΠΎΠ»ΠΎΠ²Π½ΠΎΠΉ Π±ΠΎΠ»ΠΈ (Π₯Π°Π±Ρ, 2021)
πΈΠΡΡΡ ΠΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΡΡΡ Π² Python (YouTube, 2018)
πΈΠΠΈΠ½ΠΈ-ΠΊΡΡΡ ΠΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° Python 3 (YouTube, 2018)
ΠΠ΅ΠΊΡΠΈΠΈ Π―Π½Π΄Π΅ΠΊΡ (Π¨ΠΊΠΎΠ»Π° Π±ΡΠΊΠ΅Π½Π΄-ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ, YouTube, 2020):
πΈ ΠΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅. ΠΠ΅ΠΊΡΠΈΡ 1 β ΠΠ΄ΡΠ°ΡΠ΄ ΠΡΠΊ
πΈ ΠΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅. ΠΠ΅ΠΊΡΠΈΡ 2 β ΠΠ»Π΅ΠΊΡΠ°Π½Π΄Ρ ΠΠ°ΡΠΈΠ½
πΈ ΠΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅. ΠΠ΅ΠΊΡΠΈΡ 3 β ΠΠΌΠΈΡΡΠΈΠΉ ΠΡΠ»ΠΎΠ²
πΉ ΠΠΎΠ½ΡΡ: ΠΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅ β ΠΠΌΠΈΡΡΠΈΠΉ ΠΡΠ»ΠΎΠ² (2021)
Java:
πΈ Π Π΅Π°ΠΊΡΠΈΠ²Π½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° Java: ΠΊΠ°ΠΊ, Π·Π°ΡΠ΅ΠΌ ΠΈ ΡΡΠΎΠΈΡ Π»ΠΈ? Π§Π°ΡΡΡ I (2021)
πΈ Π Π΅Π°ΠΊΡΠΈΠ²Π½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° Java: ΠΊΠ°ΠΊ, Π·Π°ΡΠ΅ΠΌ ΠΈ ΡΡΠΎΠΈΡ Π»ΠΈ? Π§Π°ΡΡΡ II (2021)
πΈ AΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π² Java // Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΡΠΉ ΡΡΠΎΠΊ OTUS (TouTube, 2018)
πΈ ΠΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π² Java 8: Π²ΠΈΠ΄Π΅ΠΎ Π΄ΠΎΠΊΠ»Π°Π΄Π° (YouTube, Dev Labs, 2016)
πΈ ΠΠΎΠ½ΡΠΈΠ½ΡΠ°ΡΠΈΠΈ Π² Java (Π₯Π°Π±Ρ, 2016)
πΉ ΠΠΎΠ»ΡΡΠΎΠΉ ΠΏΠ»Π΅ΠΉΠ»ΠΈΡΡ Ρ Π²ΠΈΠ΄Π΅ΠΎ Π½Π° ΡΡΡΡΠΊΠΎΠΌ ΠΈ Π°Π½Π³Π»ΠΈΠΉΡΠΊΠΎΠΌ ΡΠ·ΡΠΊΠ°Ρ : #java#concurrency (YouTube)
Go:
πΈ ΠΠ΅ΠΊΡΠΈΠΈ ΠΏΠΎ Go 3/3. ΠΡΡΠ΅ΠΊΡΠΈΠ²Π½Π°Ρ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΡΡΡ (concurrency) Π² Go (YouTube, 2018)
πΈ ΠΠ°ΠΊ ΠΎΡΠΈΠ±ΠΈΡΡΡΡ Ρ ΠΊΠΎΠ½ΠΊΡΡΠ΅Π½ΡΠ½ΠΎΡΡΡΡ Π² Go / ΠΠ»Π΅ΠΊΡΠ΅ΠΉ ΠΠ°Π»Π°ΠΆΡΠ΅Π½ΠΊΠΎ (Percona) (YouTube, 2020)
πΈ ΠΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΡΡΡ ΠΈΠ»ΠΈ ΠΏΡΠΎΡΡΠΎ Π³ΠΎΡΡΡΠΈΠ½Ρ Π² Golang, Π½Π°ΡΠ°Π»ΠΎ. ΠΡΠ½ΠΎΠ²Ρ ΡΠ°Π±ΠΎΡΡ Ρ Π³ΠΎΡΡΡΠΈΠ½Π°ΠΌΠΈ! (YouTube, 2021)
πΈ ΠΠ·ΡΡΠ°Π΅ΠΌ Golang. Π£ΡΠΎΠΊ 9. ΠΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΡ. ΠΠΎΡΡΡΠΈΠ½Ρ ΠΈ ΠΊΠ°Π½Π°Π»Ρ (YouTube, 2021)
πΈ ΠΠ΅Π»Π°Π΅ΠΌ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΡΡΡ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΠΉ, ΡΠ°Π·Π±ΠΈΡΠ°Π΅ΠΌΡΡ Π² ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊΠ΅ Go, ΡΡΠ³Π°Π΅ΠΌ Linux (Π₯Π°Π±Ρ, 2021)
πΈ ΠΠ»Π°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π² Go: Π§Π°ΡΡΡ I β ΠΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊ ΠΠ‘ (Π₯Π°Π±Ρ, 2019)
πΈ ΠΠ»Π°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π² Go: Π§Π°ΡΡΡ II β ΠΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊ Go (Π₯Π°Π±Ρ, 2020)
ΠΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ:
πΉ ΠΡΠΈΠ½Ρ ΡΠΎΠ½Π½Π°Ρ Π±ΠΈΠ·Π½Π΅Ρ-Π»ΠΎΠ³ΠΈΠΊΠ° Π² Π½Π°ΡΠΈ Π΄Π½ΠΈ (Π₯Π°Π±Ρ, 2018)
πΉ ΠΠ°ΠΊΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π½ΡΠΆΠ½Ρ ΡΠ·ΡΠΊΡ Rust, ΡΡΠΎΠ±Ρ ΠΏΠΈΡΠ°ΡΡ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΠΉ ΠΊΠΎΠ΄ ΡΡΠ°Π»ΠΎ ΠΏΡΠΎΡΠ΅ (Π₯Π°Π±Ρ, 2021)
πΉ Β«ΠΡ Π΄Π°ΠΆΠ΅ Π½Π΅ ΠΏΡΡΠ°Π΅ΠΌΡΡ Π·Π°ΠΏΡΡΡΠΈΡΡ ΡΡΠ°ΡΡΠΉ ΠΊΠΎΠ΄, ΡΠ°ΠΊΠΎΠΉ Π·Π°Π΄Π°ΡΠΈ Ρ Π½Π°Ρ Π½Π΅ ΡΡΠΎΠΈΡ Π² ΠΏΡΠΈΠ½ΡΠΈΠΏΠ΅Β» β Π ΠΎΠΌΠ°Π½ ΠΠ»ΠΈΠ·Π°ΡΠΎΠ² ΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ Kotlin (Π₯Π°Π±Ρ, 2018)
ΠΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ? Π‘ΡΠ°Π²ΡΡΠ΅ π₯ ΠΈ Π΄Π΅Π»ΠΈΡΠ΅ΡΡ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»ΠΎΠΌ Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ! π
#ΡΡΠ°ΡΡΡ #Π²ΠΈΠ΄Π΅ΠΎ #ΠΊΡΡΡ #Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΡΡΡ #csharp #cpp #python #java #golang
C#:
πΈ ΠΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΠ΅ ΠΏΠΎΡΠΎΠΊΠΈ ΠΎΡ Π‘ΡΠΈΠ²Π΅Π½Π° ΠΠ»ΠΈΡΠΈ (Π₯Π°Π±Ρ, 2021)
πΈ ΠΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΠΉ ΡΠ°ΡΡΠΈΠ½Ρ ΡΠΎΠ½: Π°Π½ΡΠΈΠΏΠ°ΡΡΠ΅ΡΠ½Ρ Π² ΡΠ°Π±ΠΎΡΠ΅ Ρ async/await Π² .NET (Π₯Π°Π±Ρ, 2019)
πΈ ΠΠ»Π°ΡΠ½ΡΠΉ ΠΊΡΡΡ C# Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅.
Π ΠΎΡΠΊΡΡΡΠΎΠΌ Π΄ΠΎΡΡΡΠΏΠ΅ Π½Π° YouTube Π΅ΡΡΡ, ΠΏΠΎ ΠΊΡΠ°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅ΡΠ΅, 2 ΡΡΠΎΠΊΠ° ΠΈΠ· ΠΊΡΡΡΠ° (2019):
πΉ ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅. C# ΠΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅.
πΉ ΠΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ async/await? ΠΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ Π‘#. C# ΠΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅.
πΈ ΠΠΈΠ΄Π΅ΠΎ ΠΊΡΡΡ C# Professional. Π£ΡΠΎΠΊ 15. Async Await (ΠΠ»Π΅ΠΊΡΠ°Π½Π΄Ρ Π¨Π΅Π²ΡΡΠΊ, 2015)
C++:
πΈ ΠΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΡΡΡ Π² Π‘++20. ΠΠΎΠΊΠ»Π°Π΄ Π² Π―Π½Π΄Π΅ΠΊΡΠ΅ (Π₯Π°Π±Ρ, 2021)
πΈ ΠΠ½Π°ΡΠΎΠΌΠΈΡ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΡ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΎΠ² Π² Π‘++ ΠΈ Π΄ΡΡΠ³ΠΈΡ ΡΠ·ΡΠΊΠ°Ρ (Π₯Π°Π±Ρ, 2021)
πΈ ΠΠΎΡΡΡΠΈΠ½Ρ C++20 Π² ΠΏΡΠΈΠΌΠ΅ΡΠ°Ρ (Π₯Π°Π±Ρ, 2020)
πΈ ΠΡΠΈΠ½Ρ ΡΠΎΠ½Π½Π°Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° C++ (YouTube, C++ Russia, 2019)
ΠΠ΅Π±ΠΎΠ»ΡΡΠΎΠΉ ΡΠΈΠΊΠ» ΡΡΠ°ΡΠ΅ΠΉ Π½Π° Π₯Π°Π±Ρ:
πΈ ΠΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΡΡΡ: Π½Π°Π·Π°Π΄ Π² Π±ΡΠ΄ΡΡΠ΅Π΅ (2013)
πΈ ΠΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΡΡΡ 2: ΡΠ΅Π»Π΅ΠΏΠΎΡΡΠ°ΡΠΈΡ ΡΠΊΠ²ΠΎΠ·Ρ ΠΏΠΎΡΡΠ°Π»Ρ (2014)
πΈ ΠΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΡΡΡ 3: Π‘ΡΠ±ΡΠ΅ΠΊΡΠΎΡΠ½Π°Ρ ΠΌΠΎΠ΄Π΅Π»Ρ (2017)
ΠΠΎΠΊΠ»Π°Π΄Ρ Π―Π½Π΄Π΅ΠΊΡ (YouTube):
πΉ ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ - ΠΡΠ·ΡΡΠ΅Π²ΡΠΊΠΈΠΉ ΠΠ²Π°Π½ (2014)
πΉ ΠΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΡΠΎΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ - ΠΡΠΈΠ³ΠΎΡΠΈΠΉ ΠΠ΅ΠΌΡΠ΅Π½ΠΊΠΎ (2014)
πΉ ΠΡΠΈΠ½Ρ ΡΠΎΠ½Π½Π°Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° C++ ΠΏΠΎΠ΄ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²Π° - ΠΠΌΠΈΡΡΠΈΠΉ ΠΠ΅ΡΡΠΈΠ»Π΅Π²ΡΠΊΠΈΠΉ (2014)
Python:
πΈΠΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΠΉ python Π±Π΅Π· Π³ΠΎΠ»ΠΎΠ²Π½ΠΎΠΉ Π±ΠΎΠ»ΠΈ (Π₯Π°Π±Ρ, 2021)
πΈΠΡΡΡ ΠΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΡΡΡ Π² Python (YouTube, 2018)
πΈΠΠΈΠ½ΠΈ-ΠΊΡΡΡ ΠΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° Python 3 (YouTube, 2018)
ΠΠ΅ΠΊΡΠΈΠΈ Π―Π½Π΄Π΅ΠΊΡ (Π¨ΠΊΠΎΠ»Π° Π±ΡΠΊΠ΅Π½Π΄-ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ, YouTube, 2020):
πΈ ΠΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅. ΠΠ΅ΠΊΡΠΈΡ 1 β ΠΠ΄ΡΠ°ΡΠ΄ ΠΡΠΊ
πΈ ΠΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅. ΠΠ΅ΠΊΡΠΈΡ 2 β ΠΠ»Π΅ΠΊΡΠ°Π½Π΄Ρ ΠΠ°ΡΠΈΠ½
πΈ ΠΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅. ΠΠ΅ΠΊΡΠΈΡ 3 β ΠΠΌΠΈΡΡΠΈΠΉ ΠΡΠ»ΠΎΠ²
πΉ ΠΠΎΠ½ΡΡ: ΠΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅ β ΠΠΌΠΈΡΡΠΈΠΉ ΠΡΠ»ΠΎΠ² (2021)
Java:
πΈ Π Π΅Π°ΠΊΡΠΈΠ²Π½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° Java: ΠΊΠ°ΠΊ, Π·Π°ΡΠ΅ΠΌ ΠΈ ΡΡΠΎΠΈΡ Π»ΠΈ? Π§Π°ΡΡΡ I (2021)
πΈ Π Π΅Π°ΠΊΡΠΈΠ²Π½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° Java: ΠΊΠ°ΠΊ, Π·Π°ΡΠ΅ΠΌ ΠΈ ΡΡΠΎΠΈΡ Π»ΠΈ? Π§Π°ΡΡΡ II (2021)
πΈ AΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π² Java // Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΡΠΉ ΡΡΠΎΠΊ OTUS (TouTube, 2018)
πΈ ΠΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π² Java 8: Π²ΠΈΠ΄Π΅ΠΎ Π΄ΠΎΠΊΠ»Π°Π΄Π° (YouTube, Dev Labs, 2016)
πΈ ΠΠΎΠ½ΡΠΈΠ½ΡΠ°ΡΠΈΠΈ Π² Java (Π₯Π°Π±Ρ, 2016)
πΉ ΠΠΎΠ»ΡΡΠΎΠΉ ΠΏΠ»Π΅ΠΉΠ»ΠΈΡΡ Ρ Π²ΠΈΠ΄Π΅ΠΎ Π½Π° ΡΡΡΡΠΊΠΎΠΌ ΠΈ Π°Π½Π³Π»ΠΈΠΉΡΠΊΠΎΠΌ ΡΠ·ΡΠΊΠ°Ρ : #java#concurrency (YouTube)
Go:
πΈ ΠΠ΅ΠΊΡΠΈΠΈ ΠΏΠΎ Go 3/3. ΠΡΡΠ΅ΠΊΡΠΈΠ²Π½Π°Ρ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΡΡΡ (concurrency) Π² Go (YouTube, 2018)
πΈ ΠΠ°ΠΊ ΠΎΡΠΈΠ±ΠΈΡΡΡΡ Ρ ΠΊΠΎΠ½ΠΊΡΡΠ΅Π½ΡΠ½ΠΎΡΡΡΡ Π² Go / ΠΠ»Π΅ΠΊΡΠ΅ΠΉ ΠΠ°Π»Π°ΠΆΡΠ΅Π½ΠΊΠΎ (Percona) (YouTube, 2020)
πΈ ΠΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΡΡΡ ΠΈΠ»ΠΈ ΠΏΡΠΎΡΡΠΎ Π³ΠΎΡΡΡΠΈΠ½Ρ Π² Golang, Π½Π°ΡΠ°Π»ΠΎ. ΠΡΠ½ΠΎΠ²Ρ ΡΠ°Π±ΠΎΡΡ Ρ Π³ΠΎΡΡΡΠΈΠ½Π°ΠΌΠΈ! (YouTube, 2021)
πΈ ΠΠ·ΡΡΠ°Π΅ΠΌ Golang. Π£ΡΠΎΠΊ 9. ΠΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΡ. ΠΠΎΡΡΡΠΈΠ½Ρ ΠΈ ΠΊΠ°Π½Π°Π»Ρ (YouTube, 2021)
πΈ ΠΠ΅Π»Π°Π΅ΠΌ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΡΡΡ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΠΉ, ΡΠ°Π·Π±ΠΈΡΠ°Π΅ΠΌΡΡ Π² ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊΠ΅ Go, ΡΡΠ³Π°Π΅ΠΌ Linux (Π₯Π°Π±Ρ, 2021)
πΈ ΠΠ»Π°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π² Go: Π§Π°ΡΡΡ I β ΠΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊ ΠΠ‘ (Π₯Π°Π±Ρ, 2019)
πΈ ΠΠ»Π°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π² Go: Π§Π°ΡΡΡ II β ΠΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊ Go (Π₯Π°Π±Ρ, 2020)
ΠΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ:
πΉ ΠΡΠΈΠ½Ρ ΡΠΎΠ½Π½Π°Ρ Π±ΠΈΠ·Π½Π΅Ρ-Π»ΠΎΠ³ΠΈΠΊΠ° Π² Π½Π°ΡΠΈ Π΄Π½ΠΈ (Π₯Π°Π±Ρ, 2018)
πΉ ΠΠ°ΠΊΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π½ΡΠΆΠ½Ρ ΡΠ·ΡΠΊΡ Rust, ΡΡΠΎΠ±Ρ ΠΏΠΈΡΠ°ΡΡ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΠΉ ΠΊΠΎΠ΄ ΡΡΠ°Π»ΠΎ ΠΏΡΠΎΡΠ΅ (Π₯Π°Π±Ρ, 2021)
πΉ Β«ΠΡ Π΄Π°ΠΆΠ΅ Π½Π΅ ΠΏΡΡΠ°Π΅ΠΌΡΡ Π·Π°ΠΏΡΡΡΠΈΡΡ ΡΡΠ°ΡΡΠΉ ΠΊΠΎΠ΄, ΡΠ°ΠΊΠΎΠΉ Π·Π°Π΄Π°ΡΠΈ Ρ Π½Π°Ρ Π½Π΅ ΡΡΠΎΠΈΡ Π² ΠΏΡΠΈΠ½ΡΠΈΠΏΠ΅Β» β Π ΠΎΠΌΠ°Π½ ΠΠ»ΠΈΠ·Π°ΡΠΎΠ² ΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ Kotlin (Π₯Π°Π±Ρ, 2018)
ΠΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ? Π‘ΡΠ°Π²ΡΡΠ΅ π₯ ΠΈ Π΄Π΅Π»ΠΈΡΠ΅ΡΡ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»ΠΎΠΌ Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ! π
#ΡΡΠ°ΡΡΡ #Π²ΠΈΠ΄Π΅ΠΎ #ΠΊΡΡΡ #Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΡΡΡ #csharp #cpp #python #java #golang
π₯3
ΠΠΎΡΠ»Π΅ Π΄Π»ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΠ΅ΡΠ΅ΡΡΠ²Π° ΠΏΡΠ΅Π΄Π»Π°Π³Π°Ρ Π²Π°ΠΌ ΠΏΠ°ΡΡ ΠΊΠ½ΠΈΠ³ ΠΈ ΡΡΠ°ΡΡΡ ΠΏΡΠΎ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ.
1β£ ΠΠ°Π½ΡΠ΅ΡΠΎΡ ΠΡΡΡ. ΠΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ Π½Π° C++. ΠΡΠΎΠ²Π΅ΡΠ΅Π½Π½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΏΠΎΠ²ΡΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ. β ΠΠΈΠ°Π»Π΅ΠΊΡΠΈΠΊΠ°-ΠΠΈΠ»ΡΡΠΌΡ, 2019. β 400Ρ. ISBN 978-5-907144-58-3.
πΉ ΠΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ C++: ΡΠΎΠ²ΠΌΠ΅ΡΠ°Π΅ΠΌ ΡΠΊΠΎΡΠΎΡΡΡ ΠΈ Π²ΡΡΠΎΠΊΠΈΠΉ ΡΡΠΎΠ²Π΅Π½Ρ. ΠΠΎΠΊΠ»Π°Π΄ Π―Π½Π΄Π΅ΠΊΡΠ° (Π₯Π°Π±Ρ, 2020).
2β£ ΠΠ²Π°Π½Ρ ΠΠ΅Π½Π΄ΠΆΠ°ΠΌΠΈΠ½, ΠΠΎΡ ΠΠΆΠ΅ΠΉΠΌΡ, ΠΡΡΠ»Π°Π½Π΄ ΠΡΠΈΡ. Java: ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ. ΠΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΏΠΎΠ²ΡΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π² JVM. β ΠΠΈΠ»ΡΡΠΌΡ, 2019. β 448Ρ. ISBN 978-5-907114-84-5.
ΠΠ°ΡΠ»Π°ΠΆΠ΄Π°Π΅ΡΠ΅ΡΡ! π
#ΠΊΠ½ΠΈΠ³Π° #ΡΡΠ°ΡΡΡ #ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ #cpp #java
1β£ ΠΠ°Π½ΡΠ΅ΡΠΎΡ ΠΡΡΡ. ΠΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ Π½Π° C++. ΠΡΠΎΠ²Π΅ΡΠ΅Π½Π½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΏΠΎΠ²ΡΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ. β ΠΠΈΠ°Π»Π΅ΠΊΡΠΈΠΊΠ°-ΠΠΈΠ»ΡΡΠΌΡ, 2019. β 400Ρ. ISBN 978-5-907144-58-3.
πΉ ΠΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ C++: ΡΠΎΠ²ΠΌΠ΅ΡΠ°Π΅ΠΌ ΡΠΊΠΎΡΠΎΡΡΡ ΠΈ Π²ΡΡΠΎΠΊΠΈΠΉ ΡΡΠΎΠ²Π΅Π½Ρ. ΠΠΎΠΊΠ»Π°Π΄ Π―Π½Π΄Π΅ΠΊΡΠ° (Π₯Π°Π±Ρ, 2020).
2β£ ΠΠ²Π°Π½Ρ ΠΠ΅Π½Π΄ΠΆΠ°ΠΌΠΈΠ½, ΠΠΎΡ ΠΠΆΠ΅ΠΉΠΌΡ, ΠΡΡΠ»Π°Π½Π΄ ΠΡΠΈΡ. Java: ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ. ΠΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΏΠΎΠ²ΡΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π² JVM. β ΠΠΈΠ»ΡΡΠΌΡ, 2019. β 448Ρ. ISBN 978-5-907114-84-5.
ΠΠ°ΡΠ»Π°ΠΆΠ΄Π°Π΅ΡΠ΅ΡΡ! π
#ΠΊΠ½ΠΈΠ³Π° #ΡΡΠ°ΡΡΡ #ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ #cpp #java
Forwarded from this->notes.
#cpp
ΠΡΠ΅ΠΌΡ -- Π΄Π΅Π½ΡΠ³ΠΈ.
Π‘ΡΠ°Π½Π΄Π°ΡΡ Π³ΠΎΠ²ΠΎΡΠΈΡ [ΡΠΏΡΠΎΡΠ°Ρ], ΡΡΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π½Π°Π±Π»ΡΠ΄Π°Π΅ΠΌΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅. Π ΠΊΠ°ΠΊ ΠΎΠ½ ΡΠ°ΠΌ ΡΡΠΎ Π΄Π΅Π»Π°Π΅Ρ, ΡΡΠΎ ΡΠΆΠ΅ Π΅Π³ΠΎ Π΄Π΅Π»ΠΎ.
ΠΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΠΎΠ²Π½Π΅ΠΉ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΉ.
O0 (ΠΎ Π½ΠΎΠ»Ρ)
ΠΠ°Π·Π°. ΠΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Π΄Π΅Π»Π°Π΅Ρ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ Π°Π½Π°Π»ΠΈΠ· ΠΈ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ ΠΊΠΎΠ»-Π²ΠΎ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΉ. Π‘ΠΎΡ ΡΠ°Π½ΡΠ΅ΡΡΡ ΠΏΠΎΠ»Π½Π°Ρ ΡΠ΅ΠΌΠ°Π½ΡΠΈΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. ΠΠ΅ΡΠΎΠ»ΡΠ½ΡΠΉ Π²Π°ΡΠΈΠ°Π½Ρ. ΠΠ΄Π΅Π°Π»ΡΠ½ΠΎ Π΄Π»Ρ Π΄Π΅Π±Π°Π³Π°.
O1
ΠΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅Ρ ΠΏΡΠΎΡΡΡΠ΅ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ Π±Π΅Π· ΡΠ»ΠΎΠΆΠ½ΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π°: dead code elimination, constant propagation, basic inlining.
Π£ GCC ΡΡΡ ΡΠΆΠ΅ 48 ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΉ.
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠ΅Π΄ΠΊΠΎ, ΠΊΠΎΠ³Π΄Π° Π½Π΅ Ρ ΠΎΡΠ΅ΡΡΡ ΡΠΈΠ»ΡΠ½ΠΎ Π·Π°ΠΌΠ΅Π΄Π»ΠΈΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ ΠΎΡΠ΅Π½Ρ Π±ΠΎΠ»ΡΡΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ (Π΄ΡΡΠ³ ΠΎΡΠΌΠ΅ΡΠΈΠ», ΡΡΠΎ ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ ΠΌΠ°ΡΠ³ΠΈΠ½Π°Π»Π°ΠΌ).
O2
Π‘Π°ΠΌΡΠΉ Π½Π°ΡΠΎΠ΄Π½ΡΠΉ ΡΡΠΎΠ²Π΅Π½Ρ.
ΠΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΉ Π±Π΅Π· speed-space ΡΡΠ΅ΠΉΠ΄ΠΎΡΠ°: unroll loops, vectorization, strict aliasing.
O3
ΠΠΊΠ»ΡΡΠ°Π΅ΠΌ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ ΠΏΠ΅ΡΡΠΎΠΌΠ°Π½Ρ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. ΠΡΡ ΡΠ°Π΄ΠΈ ΡΠΊΠΎΡΠΎΡΡΠΈ. ΠΠΎΠ»Π΅Π΅ Π°Π³ΡΠ΅ΡΡΠΈΠ²Π½ΠΎ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΡΠ΅ΠΌ ΡΠΈΠΊΠ»Ρ, Π±ΠΎΠ»ΡΡΠ΅ ΠΈΠ½Π»Π°ΠΉΠ½ΠΈΠΌ, Π±ΠΎΠ»ΡΡΠ΅ Π²Π΅ΠΊΡΠΎΡΠΈΠ·ΠΈΡΡΠ΅ΠΌ. ΠΠ·-Π·Π° ΡΠΈΠ»ΡΠ½ΠΎΠΉ Π²Π΅ΠΊΡΠΎΡΠΈΠ·Π°ΡΠΈΠΈ ΠΈ ΠΈΠ½Π»Π°ΠΉΠ½ΠΈΠ½Π³Π° Π±ΠΈΠ½Π°ΡΠ½ΠΈΠΊ ΠΌΠΎΠΆΠ΅Ρ ΡΠΈΠ»ΡΠ½ΠΎ ΡΠ°Π·Π΄ΡΠ²Π°ΡΡΡΡ. Π ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ ΠΏΠΎΡΡΠΎΠΌΡ ΠΏΠ΅ΡΡ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠ°Π΄Π°ΡΡ, ΡΠ°ΠΊ ΡΡΠΎ Π½Π° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅ Π½Π΅ Π²ΡΠ΅Π³Π΄Π° ΡΠ²Π»ΡΠ΅ΡΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΎΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΌ (ΠΏΡΠΈ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠΌ instruction cache Π²Ρ ΡΡΠ°Π½Π΅ΡΠ΅ ΡΠ°ΡΠ΅ ΠΊΠ΅ΡΠΌΠΈΡΡΠΈΡΡ).
ΠΡΠ»ΠΈ ΡΠ²Π»Π΅ΠΊΠ°Π΅ΡΠ΅ΡΡ, ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΊΠ»ΡΡΠ°ΡΡ ΠΏΡΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ², ΠΊΠΎΠ΄ Π² ΠΊΠΎΡΠΎΡΡΡ ΡΠΎΡΠ½ΠΎ Π² ΠΏΠ»ΡΡΠ΅. ΠΠ΅ Π·Π°Π΄Π΅Π²Π°Ρ Π²ΡΡ ΠΎΡΡΠ°Π»ΡΠ½ΠΎΠ΅.
Ofast
ΠΠ°ΠΊ O3, Π½ΠΎ Π²ΠΊΠ»ΡΡΠ°ΡΡΡΡ ΠΎΠΏΠ°ΡΠ½ΡΠ΅ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ
ΠΠΎΡΠ΅ΠΌΡ ΠΎΠΏΠ°ΡΠ½ΡΠ΅? ΠΠΎΡΠΎΠΌΡ ΡΡΠΎ ΡΠΊΠΎΡΠΎΡΡΡ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΡΡ Π·Π° ΡΡΡΡ ΡΠΎΡΠ½ΠΎΡΡΠΈ. ΠΡΠΎ Π°ΡΡΠ΅ΡΠ°ΠΊΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΈΡΠ°ΡΡ Π² Beware of fast-math.
Og (ΠΎΡΠ΄ΠΆΠΈ)
Og = O0 + Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΠΈΠ· O1, Π½Π΅ ΡΡ ΡΠ΄ΡΠ°ΡΡΠΈΠ΅ debug experience.
Os
Os = ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΠΈΠ· O2, Π½Π΅ ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°ΡΡΠΈΠ΅ ΡΠ°Π·ΠΌΠ΅Ρ ΠΊΠΎΠ΄Π° + Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠ΅ ΡΠΎΠΊΡΠ°ΡΠΈΡΡ ΡΠ°Π·ΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°. Π’ΡΠ΅ΠΉΠ΄ΠΎΡΠΈΠΌ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ, Π½ΠΎ Π² ΠΌΠ΅ΡΡ.
Oz
ΠΠΎΠ³Π΄Π° Ρ Π²Π°Ρ ΠΌΠΎΡΠ½Π΅ΠΉΡΠΈΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ ΠΏΠΎ ΡΠ°Π·ΠΌΠ΅ΡΡ Π±ΠΈΠ½Π°ΡΠ½ΠΈΠΊΠ° ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΠΈ, Π²ΡΠ±ΠΈΡΠ°Π΅ΠΌ Oz. ΠΠ°ΠΎΠ΄Π½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΡΠ°Π΄ΠΈΡΡ ΠΈ ΠΏΠ΅ΡΡ. ΠΠΎ ΠΈΠ½ΠΎΠ³Π΄Π° Π² embedded ΡΠΎΠ»ΡΠΊΠΎ ΡΠ°ΠΊ.
ΠΠΎΠΆΠ΅Ρ ΡΠ²Π΅Π»ΠΈΡΠΈΡΡ ΠΊΠΎΠ»-Π²ΠΎ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ, Π΅ΡΠ»ΠΈ ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°ΡΡ ΠΌΠ΅Π½ΡΡΠΈΠΌ ΠΊΠΎΠ»-Π²ΠΎΠΌ Π±Π°ΠΉΡΠΎΠ².
ΠΠ΅Π±Π°Π³Π°ΡΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠΎΠΆΠ΅ ΡΠΆΠ΅ Π½Π΅ΡΠ΅Π°Π»ΡΠ½ΠΎ Π±ΠΎΠ»ΡΠ½ΠΎ. ΠΠΎ ΠΊΠ°ΠΊ Π΅ΡΡΡ.
ΠΡ Π½Π΅ Π³ΠΎΠ²ΠΎΡΠΈΠΌ ΠΏΡΠΎ LTO (ΠΈ ThinLTO) ΠΈ PGO. ΠΡ Π½Π΅ Π³ΠΎΠ²ΠΎΡΠΈΠΌ ΠΏΡΠΎ -march=... ΠΈ Π΄ΡΡΠ³ΠΈΠ΅. ΠΠΎΠΆΠ΅Ρ ΠΊΠΎΠ³Π΄Π°-Π½ΠΈΠ±ΡΠ΄Ρ ΠΏΠΎΡΠΎΠΌ..
ΠΠΎΠΊΠ»Π°Π΄ Π² ΡΠ΅ΠΌΡ: What GCC optimization level is best for you?
Π Π΄ΠΎΠΊΠ»Π°Π΄Π΅ ΠΏΡΠΎ ΡΠ°ΠΌΠΈ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ LLVM Π² ΡΠ°Π·Π½ΡΡ ΠΏΠ»ΠΎΡΠΊΠΎΡΡΡΡ ΠΏΠΎ ΡΠ°Π·Π½ΡΠΌ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡΠΌ. ΠΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ, Π΅ΡΠ»ΠΈ Ρ ΠΎΡΠΈΡΠ΅ ΠΎΡΠΎΠ·Π½Π°ΡΡ, ΠΊΠ°ΠΊΠΎΠΉ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Π»ΡΡΡΠ΅ ΠΏΠΎΠ΄ Π²Π°ΡΠΈ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠ΅ Π½ΡΠΆΠ΄Ρ, Ρ.ΠΊ. ΡΡΠ΅ΠΉΠ΄ΠΎΡΡ Π²ΡΠ±ΠΈΡΠ°ΡΡ ΡΠ°Π·Π½ΡΠ΅.
ΠΡΠ΅ΠΌΡ -- Π΄Π΅Π½ΡΠ³ΠΈ.
Π‘ΡΠ°Π½Π΄Π°ΡΡ Π³ΠΎΠ²ΠΎΡΠΈΡ [ΡΠΏΡΠΎΡΠ°Ρ], ΡΡΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π½Π°Π±Π»ΡΠ΄Π°Π΅ΠΌΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅. Π ΠΊΠ°ΠΊ ΠΎΠ½ ΡΠ°ΠΌ ΡΡΠΎ Π΄Π΅Π»Π°Π΅Ρ, ΡΡΠΎ ΡΠΆΠ΅ Π΅Π³ΠΎ Π΄Π΅Π»ΠΎ.
ΠΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΠΎΠ²Π½Π΅ΠΉ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΉ.
O0 (ΠΎ Π½ΠΎΠ»Ρ)
ΠΠ°Π·Π°. ΠΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Π΄Π΅Π»Π°Π΅Ρ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ Π°Π½Π°Π»ΠΈΠ· ΠΈ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ ΠΊΠΎΠ»-Π²ΠΎ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΉ. Π‘ΠΎΡ ΡΠ°Π½ΡΠ΅ΡΡΡ ΠΏΠΎΠ»Π½Π°Ρ ΡΠ΅ΠΌΠ°Π½ΡΠΈΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. ΠΠ΅ΡΠΎΠ»ΡΠ½ΡΠΉ Π²Π°ΡΠΈΠ°Π½Ρ. ΠΠ΄Π΅Π°Π»ΡΠ½ΠΎ Π΄Π»Ρ Π΄Π΅Π±Π°Π³Π°.
O1
ΠΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅Ρ ΠΏΡΠΎΡΡΡΠ΅ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ Π±Π΅Π· ΡΠ»ΠΎΠΆΠ½ΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π°: dead code elimination, constant propagation, basic inlining.
Π£ GCC ΡΡΡ ΡΠΆΠ΅ 48 ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΉ.
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠ΅Π΄ΠΊΠΎ, ΠΊΠΎΠ³Π΄Π° Π½Π΅ Ρ ΠΎΡΠ΅ΡΡΡ ΡΠΈΠ»ΡΠ½ΠΎ Π·Π°ΠΌΠ΅Π΄Π»ΠΈΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ ΠΎΡΠ΅Π½Ρ Π±ΠΎΠ»ΡΡΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ (Π΄ΡΡΠ³ ΠΎΡΠΌΠ΅ΡΠΈΠ», ΡΡΠΎ ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ ΠΌΠ°ΡΠ³ΠΈΠ½Π°Π»Π°ΠΌ).
O2
Π‘Π°ΠΌΡΠΉ Π½Π°ΡΠΎΠ΄Π½ΡΠΉ ΡΡΠΎΠ²Π΅Π½Ρ.
ΠΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΉ Π±Π΅Π· speed-space ΡΡΠ΅ΠΉΠ΄ΠΎΡΠ°: unroll loops, vectorization, strict aliasing.
O3
ΠΠΊΠ»ΡΡΠ°Π΅ΠΌ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ ΠΏΠ΅ΡΡΠΎΠΌΠ°Π½Ρ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. ΠΡΡ ΡΠ°Π΄ΠΈ ΡΠΊΠΎΡΠΎΡΡΠΈ. ΠΠΎΠ»Π΅Π΅ Π°Π³ΡΠ΅ΡΡΠΈΠ²Π½ΠΎ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΡΠ΅ΠΌ ΡΠΈΠΊΠ»Ρ, Π±ΠΎΠ»ΡΡΠ΅ ΠΈΠ½Π»Π°ΠΉΠ½ΠΈΠΌ, Π±ΠΎΠ»ΡΡΠ΅ Π²Π΅ΠΊΡΠΎΡΠΈΠ·ΠΈΡΡΠ΅ΠΌ. ΠΠ·-Π·Π° ΡΠΈΠ»ΡΠ½ΠΎΠΉ Π²Π΅ΠΊΡΠΎΡΠΈΠ·Π°ΡΠΈΠΈ ΠΈ ΠΈΠ½Π»Π°ΠΉΠ½ΠΈΠ½Π³Π° Π±ΠΈΠ½Π°ΡΠ½ΠΈΠΊ ΠΌΠΎΠΆΠ΅Ρ ΡΠΈΠ»ΡΠ½ΠΎ ΡΠ°Π·Π΄ΡΠ²Π°ΡΡΡΡ. Π ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ ΠΏΠΎΡΡΠΎΠΌΡ ΠΏΠ΅ΡΡ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠ°Π΄Π°ΡΡ, ΡΠ°ΠΊ ΡΡΠΎ Π½Π° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅ Π½Π΅ Π²ΡΠ΅Π³Π΄Π° ΡΠ²Π»ΡΠ΅ΡΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΎΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΌ (ΠΏΡΠΈ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠΌ instruction cache Π²Ρ ΡΡΠ°Π½Π΅ΡΠ΅ ΡΠ°ΡΠ΅ ΠΊΠ΅ΡΠΌΠΈΡΡΠΈΡΡ).
ΠΡΠ»ΠΈ ΡΠ²Π»Π΅ΠΊΠ°Π΅ΡΠ΅ΡΡ, ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΊΠ»ΡΡΠ°ΡΡ ΠΏΡΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ², ΠΊΠΎΠ΄ Π² ΠΊΠΎΡΠΎΡΡΡ ΡΠΎΡΠ½ΠΎ Π² ΠΏΠ»ΡΡΠ΅. ΠΠ΅ Π·Π°Π΄Π΅Π²Π°Ρ Π²ΡΡ ΠΎΡΡΠ°Π»ΡΠ½ΠΎΠ΅.
Ofast
ΠΠ°ΠΊ O3, Π½ΠΎ Π²ΠΊΠ»ΡΡΠ°ΡΡΡΡ ΠΎΠΏΠ°ΡΠ½ΡΠ΅ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ
--ffast-math.ΠΠΎΡΠ΅ΠΌΡ ΠΎΠΏΠ°ΡΠ½ΡΠ΅? ΠΠΎΡΠΎΠΌΡ ΡΡΠΎ ΡΠΊΠΎΡΠΎΡΡΡ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΡΡ Π·Π° ΡΡΡΡ ΡΠΎΡΠ½ΠΎΡΡΠΈ. ΠΡΠΎ Π°ΡΡΠ΅ΡΠ°ΠΊΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΈΡΠ°ΡΡ Π² Beware of fast-math.
Og (ΠΎΡΠ΄ΠΆΠΈ)
Og = O0 + Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΠΈΠ· O1, Π½Π΅ ΡΡ ΡΠ΄ΡΠ°ΡΡΠΈΠ΅ debug experience.
Os
Os = ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΠΈΠ· O2, Π½Π΅ ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°ΡΡΠΈΠ΅ ΡΠ°Π·ΠΌΠ΅Ρ ΠΊΠΎΠ΄Π° + Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠ΅ ΡΠΎΠΊΡΠ°ΡΠΈΡΡ ΡΠ°Π·ΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°. Π’ΡΠ΅ΠΉΠ΄ΠΎΡΠΈΠΌ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ, Π½ΠΎ Π² ΠΌΠ΅ΡΡ.
Oz
ΠΠΎΠ³Π΄Π° Ρ Π²Π°Ρ ΠΌΠΎΡΠ½Π΅ΠΉΡΠΈΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ ΠΏΠΎ ΡΠ°Π·ΠΌΠ΅ΡΡ Π±ΠΈΠ½Π°ΡΠ½ΠΈΠΊΠ° ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΠΈ, Π²ΡΠ±ΠΈΡΠ°Π΅ΠΌ Oz. ΠΠ°ΠΎΠ΄Π½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΡΠ°Π΄ΠΈΡΡ ΠΈ ΠΏΠ΅ΡΡ. ΠΠΎ ΠΈΠ½ΠΎΠ³Π΄Π° Π² embedded ΡΠΎΠ»ΡΠΊΠΎ ΡΠ°ΠΊ.
ΠΠΎΠΆΠ΅Ρ ΡΠ²Π΅Π»ΠΈΡΠΈΡΡ ΠΊΠΎΠ»-Π²ΠΎ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ, Π΅ΡΠ»ΠΈ ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°ΡΡ ΠΌΠ΅Π½ΡΡΠΈΠΌ ΠΊΠΎΠ»-Π²ΠΎΠΌ Π±Π°ΠΉΡΠΎΠ².
ΠΠ΅Π±Π°Π³Π°ΡΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠΎΠΆΠ΅ ΡΠΆΠ΅ Π½Π΅ΡΠ΅Π°Π»ΡΠ½ΠΎ Π±ΠΎΠ»ΡΠ½ΠΎ. ΠΠΎ ΠΊΠ°ΠΊ Π΅ΡΡΡ.
ΠΡ Π½Π΅ Π³ΠΎΠ²ΠΎΡΠΈΠΌ ΠΏΡΠΎ LTO (ΠΈ ThinLTO) ΠΈ PGO. ΠΡ Π½Π΅ Π³ΠΎΠ²ΠΎΡΠΈΠΌ ΠΏΡΠΎ -march=... ΠΈ Π΄ΡΡΠ³ΠΈΠ΅. ΠΠΎΠΆΠ΅Ρ ΠΊΠΎΠ³Π΄Π°-Π½ΠΈΠ±ΡΠ΄Ρ ΠΏΠΎΡΠΎΠΌ..
ΠΠΎΠΊΠ»Π°Π΄ Π² ΡΠ΅ΠΌΡ: What GCC optimization level is best for you?
Π Π΄ΠΎΠΊΠ»Π°Π΄Π΅ ΠΏΡΠΎ ΡΠ°ΠΌΠΈ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ LLVM Π² ΡΠ°Π·Π½ΡΡ ΠΏΠ»ΠΎΡΠΊΠΎΡΡΡΡ ΠΏΠΎ ΡΠ°Π·Π½ΡΠΌ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡΠΌ. ΠΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ, Π΅ΡΠ»ΠΈ Ρ ΠΎΡΠΈΡΠ΅ ΠΎΡΠΎΠ·Π½Π°ΡΡ, ΠΊΠ°ΠΊΠΎΠΉ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Π»ΡΡΡΠ΅ ΠΏΠΎΠ΄ Π²Π°ΡΠΈ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠ΅ Π½ΡΠΆΠ΄Ρ, Ρ.ΠΊ. ΡΡΠ΅ΠΉΠ΄ΠΎΡΡ Π²ΡΠ±ΠΈΡΠ°ΡΡ ΡΠ°Π·Π½ΡΠ΅.
β€1π1