ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° C/C++ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°
Kanalga Telegramβda oβtish
ΠΠΎΠ»Π΅Π·Π½ΡΠ΅ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»Ρ ΠΏΠΎ Π²ΡΠ΅ΠΌΡ, ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΠΏΠ»ΡΡΠΎΠ²ΠΈΠΊΡ/ΡΠΈΡΠ½ΠΈΠΊΡ. ΠΠΎ Π²ΡΠ΅ΠΌ Π²ΠΎΠΏΡΠΎΡΠ°ΠΌ @evgenycarter
Ko'proq ko'rsatish7 225
Obunachilar
+124 soatlar
-167 kunlar
-4430 kunlar
Postlar arxiv
πBuilding Low Latency Applications with C++
Sourav Ghosh (2023)
Develop a complete low latency trading ecosystem from scratch using modern C++. C++ is meticulously designed with efficiency, performance, and flexibility as its core objectives. However, real-time low latency applications demand a distinct set of requirements, particularly in terms of performance latencies.
C++ is meticulously designed with efficiency, performance, and flexibility as its core objectives. However, real-time low latency applications demand a distinct set of requirements, particularly in terms of performance latencies.
With this book, youβll gain insights into the performance requirements for low latency applications and the C++ features critical to achieving the required performance latencies. Youβll also solidify your understanding of the C++ principles and techniques as you build a low latency system in C++ from scratch.
Youβll understand the similarities between such applications, recognize the impact of performance latencies on business, and grasp the reasons behind the extensive efforts invested in minimizing latencies. Using a step-by-step approach, youβll embark on a low latency app development journey by building an entire electronic trading system, encompassing a matching engine, market data handlers, order gateways, and trading algorithms, all in C++. Additionally, youβll get to grips with measuring and optimizing the performance of your trading system.
By the end of this book, youβll have a comprehensive understanding of how to design and build low latency applications in C++ from the ground up, while effectively minimizing performance latencies.
#cpp #programming
π @cpp_lib
π₯ ΠΡΠ²ΠΎΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΡ ΠΠ Π½Π° QT ΠΈ ΠΠ‘ ΠΠ²ΡΠΎΡΠ° ΠΈ ΠΏΠΎΠ»ΡΡΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΠΎΠΏΠ°ΡΡΡ Π² ΠΊΡΡΠΏΠ½ΡΡ IT-ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡ!
ΠΡΠΎΠΉΠ΄ΠΈ ΡΠ΅ΡΡ ΠΈΠ· 20 Π²ΠΎΠΏΡΠΎΡΠΎΠ² ΠΈ ΠΏΡΠΎΠ²Π΅ΡΡ, Π½Π°ΡΠΊΠΎΠ»ΡΠΊΠΎ Ρ
ΠΎΡΠΎΡΠΎ nΡ Π·Π½Π°Π΅ΡΡ ΡΠ·ΡΠΊ C++ ΠΈ Π³ΠΎΡΠΎΠ² ΠΎΡΠ²ΠΎΠΈΡΡ QT ΠΈ ΠΠ‘ ΠΠ²ΡΠΎΡΠ° .
Π‘ΠΌΠΎΠΆΠ΅ΡΡ ΡΠ΄Π°ΡΡ β ΠΏΡΠΎΠΉΠ΄ΡΡΡ Π½Π° ΠΏΡΠΎΠ΄Π²ΠΈΠ½ΡΡΡΠΉ ΠΎΠ½Π»Π°ΠΉΠ½-ΠΊΡΡΡ "Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΠΏΡΠΈΠΊΠ»Π°Π΄Π½ΠΎΠ³ΠΎ ΠΠ Π½Π° Qt ΠΈ ΠΠ‘ ΠΠ²ΡΠΎΡΠ°" ΠΎΡ OTUS.
π ΠΠ ΠΠΠ’Π Π’ΠΠ‘Π’: https://vk.cc/cwgIiq
Π Π΅ΠΊΠ»Π°ΠΌΠ°. ΠΠΠ Β«ΠΡΡΡ ΠΎΠ½Π»Π°ΠΉΠ½-ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅Β», ΠΠΠ Π 1177746618576, www.otus.ruΠΠΎΠ΄Π±ΠΎΡΠΊΠ° ΠΏΠΎΠ»Π΅Π·Π½ΡΡ
ΡΠ΅ΡΡΡΡΠΎΠ² Π΄Π»Ρ ΠΈΠ·ΡΡΠ΅Π½ΠΈΡ C++
π‘ LearnCpp.com β ΡΡΠΎ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΡΠΉ Π²Π΅Π±-ΡΠ°ΠΉΡ, ΠΏΠΎΡΠ²ΡΡΠ΅Π½Π½ΡΠΉ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ Π²Π°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π½Π° C++. ΠΠ΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ ΡΠΎΠ³ΠΎ, Π±ΡΠ» Π»ΠΈ Ρ Π²Π°Ρ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠΉ ΠΎΠΏΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈΠ»ΠΈ Π½Π΅Ρ, ΡΡΠ΅Π±Π½ΡΠ΅ ΠΏΠΎΡΠΎΠ±ΠΈΡ Π½Π° ΡΡΠΎΠΌ ΡΠ°ΠΉΡΠ΅ ΠΏΠΎΠΌΠΎΠ³ΡΡ Π²Π°ΠΌ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ Π²ΡΠ΅ ΡΠ°Π³ΠΈ ΠΏΠΎ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ, ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΠΈ ΠΎΡΠ»Π°Π΄ΠΊΠ΅ Π²Π°ΡΠΈΡ
ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ Π½Π° C++, ΠΈ Π²ΡΠ΅ ΡΡΠΎ Ρ Π±ΠΎΠ»ΡΡΠΈΠΌ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ².
π‘ ravesli.com β ΠΠ΄Π΅ΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Ρ Π±ΠΎΠ»Π΅Π΅ 240 Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΡΡ
ΡΡΠΎΠΊΠΎΠ², Π³Π΄Π΅ Ρ Π½ΡΠ»Ρ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡΡΡ ΠΎΡΠ½ΠΎΠ²Ρ ΠΈ ΡΠΎΠ½ΠΊΠΎΡΡΠΈ ΡΠ·ΡΠΊΠ° Π‘++ ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π² ΡΠ΅Π»ΠΎΠΌ. ΠΡΡΡ ΠΏΠΎΡΠ°Π³ΠΎΠ²ΡΠ΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΈΠ³Ρ Π½Π° Π‘++ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ MFC ΠΈ SFML, ΠΈ Π±ΠΎΠ»Π΅Π΅ 70 ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΡ
Π·Π°Π΄Π°Π½ΠΈΠΉ Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π²Π°ΡΠΈΡ
Π½Π°Π²ΡΠΊΠΎΠ² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
π‘ metanit.com β Π΄Π°Π½Π½ΡΠΉ ΡΠ°ΠΉΡ ΠΏΠΎΡΠ²ΡΡΠ΅Π½ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌ ΡΠ·ΡΠΊΠ°ΠΌ ΠΈ ΡΠ΅Ρ
Π½ΠΎΠ»ΠΎΠ³ΠΈΡΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ°ΠΌ, ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΠΌ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°ΠΌ ΠΈ ΠΠ’-ΡΠ΅Ρ
Π½ΠΎΠ»ΠΎΠ³ΠΈΡΠΌ. ΠΠ΄Π΅ΡΡ Π±ΡΠ΄ΡΡ Π²ΡΠΊΠ»Π°Π΄ΡΠ²Π°ΡΡΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π° ΠΈ ΡΡΠ΅Π±Π½ΡΠ΅ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»Ρ, ΡΡΠ°ΡΡΠΈ ΠΈ ΠΏΡΠΈΠΌΠ΅ΡΡ.
π‘ cppstudio.com/cat/274/ β ΠΡΠ»ΠΈ Π²Ρ Π½ΠΎΠ²ΠΈΡΠΎΠΊ Π² C++, ΠΏΡΠ΅Π΄Π»Π°Π³Π°Ρ ΠΠ°ΠΌ ΠΏΡΠΎΡΠΈΡΠ°ΡΡ ΡΡΠΎΡ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΡΠΉ ΡΡΠ΅Π±Π½ΠΈΠΊ. ΠΠ΄Π΅ΡΡ ΡΠΎΠ±ΡΠ°Π½ΠΎ Π±ΠΎΠ»ΡΡΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΡΠ°ΡΠ΅ΠΉ Π΄Π»Ρ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΡ
ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠΎΠ² ΠΏΠΎ Π‘++. Π£ΡΠ»ΠΎΠ²Π½ΠΎ Π²ΡΠ΅ ΡΡΠ°ΡΡΠΈ ΡΠ°Π·Π΄Π΅Π»Π΅Π½Ρ Π½Π° Π³ΡΡΠΏΠΏΡ, ΠΊΡΠ°ΡΠΊΠΎ Ρ
Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΠ·ΡΡΡΠΈΠ΅ ΠΈΡ
ΡΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅. ΠΠΎΡΠ»Π΅ ΠΏΡΠΎΡΡΠ΅Π½ΠΈΡ ΡΡΠ°ΡΡΠΈ, ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΊΡΠ΅ΠΏΠΈΡΡ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π», Π½Π°ΠΏΠΈΡΠ°Π² Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ. ΠΠ»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΠ²ΠΎΠΈΡ
ΡΠ΅ΠΎΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈΡ
Π·Π½Π°Π½ΠΈΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΠΉΡΠΈ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎ Π‘++. Π ΡΠ°Π±Π»ΠΈΡΠ΅ ΠΏΠΎΡΠ»Π΅ ΡΠ΅ΠΎΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈΡ
ΡΡΠ°ΡΠ΅ΠΉ ΠΈΠ΄Π΅Ρ ΠΏΠΎΠ΄ΡΠ°Π·Π΄Π΅Π» ΠΏΡΠ°ΠΊΡΠΈΠΊΠΈ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΎΠΉΡΠΈ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
π‘ cplusplus.com/doc/tutorial/ β These tutorials explain the C++ language from its basics up to the newest features introduced by C++11. Chapters have a practical orientation, with example programs in all sections to start practicing what is being explained right away.
π‘ devdocs.io/cpp/ β The interface of C++ standard library is defined by the following collection of headers.
π‘ https://en.cppreference.com/w/cpp β Π΅ΡΡ ΠΎΠ΄Π½Π° Ρ
ΠΎΡΠΎΡΠ°Ρ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ Π½Π° Π°Π½Π³Π»ΠΈΠΉΡΠΊΠΎΠΌ. ΠΠΎΡΡΠΎΡΠ½Π½ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅ΡΡΡ.
π‘ https://learnc.info/ β Ρ
ΠΎΡΠΎΡΠΈΠΉ ΡΠ°ΠΉΡ Ρ Π»Π΅ΠΊΡΠΈΡΠΌΠΈ ΠΏΠΎ ΡΠ·ΡΠΊΡ C. Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΡΠ·ΡΠΊΠ° Π²Π°ΠΌ ΠΏΡΠ΅Π΄ΡΡΠΎΠΈΡ ΠΈΠ·ΡΡΠ°ΡΡ C. ΠΠΎΡΠ΅ΠΌΡ ΠΈΠΌΠ΅Π½Π½ΠΎ C, Π° Π½Π΅ Pascal, Python, Ruby ΠΈΠ»ΠΈ PHP? ΠΡΠΎΡ ΡΠ·ΡΠΊ Π·Π°ΡΡΠ°Π²Π»ΡΠ΅Ρ Π²Π°Ρ Π΄ΡΠΌΠ°ΡΡ ΠΎΠ±ΠΎ Π²ΡΡΠΌ. ΠΠΎΠ³Π΄Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ΅ΡΡ Π½Π° ΡΠΈ, Π½Π°ΡΠΈΠ½Π°Π΅ΡΡ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ, ΡΡΠΎ ΠΊΠΎΠΌΠΏΡΡΡΠ΅Ρ - ΠΏΡΠΎΡΡΠΎ ΠΆΠ΅Π»Π΅Π·ΡΠΊΠ°. ΠΠ΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ Π²ΡΠ΄Π΅Π»ΡΡΡ ΠΏΠ°ΠΌΡΡΡ ΠΏΠΎΠ΄ ΠΎΠ±ΡΠ΅ΠΊΡΡ, Π·Π°ΡΠ΅ΠΌ ΠΎΡΠΈΡΠ°ΡΡ ΡΡΡ ΠΏΠ°ΠΌΡΡΡ, Π·Π°Π±ΠΎΡΠΈΡΡΡΡ ΠΎ ΠΏΠ΅ΡΠ΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ², ΠΏΠ΅ΡΠ΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
, ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ Π·Π½Π°ΠΊΠ° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
, ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠΈ ΡΠΈΠΏΠΎΠ², ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠΌ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠΈ ΠΊ ΠΏΠ°ΠΌΡΡΠΈ ΠΈ Ρ.Π΄.
#cpp #programming
π @cpp_lib
ΠΠ°Π·ΠΎΠ²ΡΠΉ ΠΊΡΡΡ C++ (MIPT, ILab)
Lecture 1. Scent of C++.
Lecture 2. Π£ΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ ΠΈ ΡΡΡΠ»ΠΊΠΈ
Lecture 3. ΠΠΌΠ΅Π½Π° ΠΈ ΡΡΡΠ½ΠΎΡΡΠΈ
Lecture 4. ΠΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΈ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅.
Lecture 5. RAII ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅
Lecture 6. ΠΡΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΡΠΈΠΏΠΎΠ²
Lecture 7. ΠΠ΅ΡΠ΅Π³ΡΡΠ·ΠΊΠ° ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠ²
Lecture 8. ΠΠ°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΠΏΠΎΠ»ΠΈΠΌΠΎΡΡΠΈΠ·ΠΌ
Lecture 9. ΠΠ½ΠΎΠΆΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠ΅ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅
Lecture 10. Π―Π·ΡΠΊΠΈ ΠΈ Π³ΡΠ°ΠΌΠΌΠ°ΡΠΈΠΊΠΈ
ΠΈΡΡΠΎΡΠ½ΠΈΠΊ
#cpp #programming
π @cpp_lib
π ΠΡΠΎ ΡΠΊΠ°Π·Π°Π», ΡΡΠΎ ΡΠΏΡΠ°Π²Π»ΡΡΡ ΠΏΠ°ΠΌΡΡΡΡ Π² Rust ΡΠ»ΠΎΠΆΠ½ΠΎ?
ΠΡΠΈΠ³Π»Π°ΡΠ°Π΅ΠΌ 22 Π°ΠΏΡΠ΅Π»Ρ Π² 20:00 ΠΌΡΠΊ Π½Π° Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΡΠΉ Π²Π΅Π±ΠΈΠ½Π°Ρ Β«Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡΡΡ Π² RustΒ» ΠΎΡ ΠΡΡΡ.
ΠΠ΅Π±ΠΈΠ½Π°Ρ ΡΠ²Π»ΡΠ΅ΡΡΡ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΠΎΠΉ ΡΠ°ΡΡΡΡ ΠΏΠΎΠ»Π½ΠΎΡΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΎΠ½Π»Π°ΠΉΠ½-ΠΊΡΡΡΠ° Β«Rust Developer. ProfessionalΒ».
β‘οΈ Π Π΅Π³ΠΈΡΡΡΠ°ΡΠΈΡ Π½Π° Π²Π΅Π±ΠΈΠ½Π°Ρ: https://vk.cc/cwflqN
ΠΠ° Π²Π΅Π±ΠΈΠ½Π°ΡΠ΅ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ:
βοΈ ΠΏΡΠΈΠ½ΡΠΈΠΏ Π²Π»Π°Π΄Π΅Π½ΠΈΡ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠΉ ΡΠ½ΠΈΡΡΠΎΠΆΠ°ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ Π±Π΅Π· ΡΠ±ΠΎΡΡΠΈΠΊΠ° ΠΌΡΡΠΎΡΠ°;
βοΈ ΠΏΡΠΈΠ½ΡΠΈΠΏ Π·Π°ΠΈΠΌΡΡΠ²ΠΎΠ²Π°Π½ΠΈΡ, Π³Π°ΡΠ°Π½ΡΠΈΡΡΡΡΠΈΠΉ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΡΠ»ΠΎΠΊ;
βοΈ Π·Π°ΡΠ΅ΠΌ Π² ΡΠ·ΡΠΊ Π±ΡΠ»ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ ΡΠ²Π½ΡΠ΅ Π»Π°ΠΉΡΡΠ°ΠΉΠΌΡ;
βοΈ ΠΌΠ΅Ρ
Π°Π½ΠΈΠ·ΠΌ Π΄Π»Ρ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ ΠΊΠ°ΡΡΠΎΠΌΠ½ΠΎΠΉ Π»ΠΎΠ³ΠΈΠΊΠΈ Π΄Π΅ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ².
βοΈΠΠ°ΠΏΠΈΡΡΠ²Π°ΠΉΡΠ΅ΡΡ ΡΠ΅ΠΉΡΠ°Ρ, Π° ΠΌΡ ΠΏΠΎΡΠΎΠΌ Π½Π°ΠΏΠΎΠΌΠ½ΠΈΠΌ. Π£ΡΠ°ΡΡΠΈΠ΅ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΠΎ.
Π Π΅ΠΊΠ»Π°ΠΌΠ°. ΠΠΠ Β«ΠΡΡΡ ΠΎΠ½Π»Π°ΠΉΠ½-ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅Β», ΠΠΠ Π 1177746618576, www.otus.ru
ΠΠ΅ΡΠ΅ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠΎΠ·Π³Π° Ρ ΠΏΠΎΠΌΠΎΡΡΡ test driven Π² C++ - Π€ΠΈΠ» ΠΡΡ - Meeting C++ 2023
ΠΡ Π²ΡΠ΅ Π³ΠΎΠ²ΠΎΡΠΈΠΌ, ΡΡΠΎ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΠΈΡΠ°ΡΡ ΡΠ΅ΡΡΡ, ΠΈΠ»ΠΈ, ΠΏΠΎ ΠΊΡΠ°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅ΡΠ΅, Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΠΈΡΠ°ΡΡ ΠΈΡ
Π±ΠΎΠ»ΡΡΠ΅.
ΠΠΎ, ΠΏΠΎΡ
ΠΎΠΆΠ΅, Ρ Π½Π°Ρ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅Ρ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, ΠΈ Π½Π°ΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡΠΎΡΡΠ΅Π΄ΠΎΡΠΎΡΠ΅Π½ΠΎ Π½Π° ΡΠ΅Π°Π»ΡΠ½ΡΡ
ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°Ρ
, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΡ ΠΏΡΡΠ°Π΅ΠΌΡΡ ΡΠ΅ΡΠΈΡΡ. ΠΠΈΠΊΡΠΎ Π½Π΅ Ρ
ΠΎΡΠ΅Ρ Π±ΡΡΡ Π·Π°ΠΌΠΎΡΠ°Π½Π½ΡΠΌ ΡΠ°Π±ΠΎΡΠΎΠΉ.
Π ΡΡΠΎ, Π΅ΡΠ»ΠΈ Π²ΡΠ΅ ΡΡΠΎ Π½Π΅ ΡΠ°ΠΊ?
Π§ΡΠΎ, Π΅ΡΠ»ΠΈ Π±Ρ ΡΠ΅ΡΡΡ ΠΌΠΎΠ³Π»ΠΈ ΡΡΠΊΠΎΠ½ΠΎΠΌΠΈΡΡ Π²Π°ΡΠ΅ Π²ΡΠ΅ΠΌΡ, ΡΠ»ΡΡΡΠΈΡΡ Π²Π°ΡΡ ΡΠΎΡΡΠ΅Π΄ΠΎΡΠΎΡΠ΅Π½Π½ΠΎΡΡΡ - ΠΈ Π΄Π°ΠΆΠ΅ Π΄ΠΎΡΡΠ°Π²ΠΈΡΡ ΡΠ΄ΠΎΠ²ΠΎΠ»ΡΡΡΠ²ΠΈΠ΅!
Π ΡΡΠΎΠΉ Π±Π΅ΡΠ΅Π΄Π΅ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΈΡ
ΠΎΠ»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΌΡ ΡΠ°Π±ΠΎΡΠ°Π΅ΠΌ, ΠΊΠ°ΠΊ ΠΌΡ ΡΠΎΠ²Π΅ΡΡΠ΅Π½ΡΡΠ²ΡΠ΅ΠΌΡΡ ΠΈ ΠΊΠ°ΠΊ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄, ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΡΠΉ Π½Π° ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ²ΡΡΠΈΡΡ Π½Π°ΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ!
ΠΈΡΡΠΎΡΠ½ΠΈΠΊ
#cpp #programming
π @cpp_lib
[MUC++] Elizaveta Shulankina - Analyzing C++ applications for performance optimization
Some of us, willingly or not, have needed to analyze the code for performance improvements. Of course, we resorted to various code profilers to figure out what was wrong with our perfectly written code... And more often than not, the profiler surprised us by pointing out a performance bottleneck in the code!
This talk will be an introduction to C++ application performance optimization using tools such as Intel VTune Profiler and Intel Advisor. We will briefly walk through the performance optimization steps, then take a small C++ application and ask VTune and Advisor to help us understand what is going on, what the performance bottlenecks are and how we can deal with them to make our application memory and compute efficient. We will do a few iterations of tuning this C++ application and see how it speeds up.
https://www.youtube.com/watch?v=M1D8iez1Ph0
#cpp #programming
π @cpp_lib
βοΈ Π Π°Π±ΠΎΡΠ°Π΅ΡΡ Π½Π° Π‘++?
ΠΠΎΠΏΡΠΎΠ±ΡΠΉ ΠΏΡΠΎΠΉΡΠΈ Π½Π°Ρ ΡΠ΅ΡΡ ΠΏΠΎ C++ ΠΈ ΠΏΡΠΎΠ²Π΅ΡΡ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ΠΈΡ Π»ΠΈ ΡΠ΅Π±Π΅ Π½Π°Ρ ΠΊΡΡΡ
ΠΡΠ²Π΅ΡΠΈΡΡ β ΠΏΡΠΎΠΉΠ΄Π΅ΡΡ Π½Π° ΠΏΡΠΎΠ΄Π²ΠΈΠ½ΡΡΡΠΉ ΠΊΡΡΡ "C++ Developer. Professional" ΠΎΡ OTUS ΠΏΠΎ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎΠΉ ΡΠ΅Π½Π΅ + ΠΏΠΎΠ»ΡΡΠΈΡΡ Π·Π°ΠΏΠΈΡΡ ΠΌΠ°ΡΡΠ΅Ρ-ΠΊΠ»Π°ΡΡΠ° ΠΎΡ ΠΏΡΠ΅ΠΏΠΎΠ΄Π°Π²Π°ΡΠ΅Π»Ρ ΠΊΡΡΡΠ°.
π ΠΠ ΠΠΠ’Π Π’ΠΠ‘Π’: https://vk.cc/cwdRgg
Π Π΅ΠΊΠ»Π°ΠΌΠ°. ΠΠΠ Β«ΠΡΡΡ ΠΎΠ½Π»Π°ΠΉΠ½-ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅Β», ΠΠΠ Π 1177746618576ΠΡΠΎ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΡ ΡΠΈΡΠ΅Π» ΠΈ SIMD ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ Ρ ΠΎΠ±ΠΎΠ³Π½Π°Π» STL Π² 16 ΡΠ°Π·
CΠΈΡΡΠ°ΡΠΈΡ, ΠΊΠΎΠ³Π΄Π° Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΠΊ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΏΡΡΠ°ΡΡΡΡ ΠΏΠΎΠΊΡΡΡΡ Π½ΠΎΠ²ΡΠΌ ΠΆΠ΅Π»Π΅Π·ΠΎΠΌ, Π½Π΅ ΡΠ΅Π΄ΠΊΠ°. ΠΠ°ΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ, ΠΎΠ΄Π½Π°ΠΊΠΎ, ΡΡΠΎ ΠΆΠ΅Π»Π΅Π·ΠΎ, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΡΠ΅Π³ΠΎΠ΄Π½Ρ, ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π² ΡΠ΅Π±Π΅ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΌΠ΅Ρ
Π°Π½ΠΈΠ·ΠΌΠΎΠ², ΡΠΏΠΎΡΠΎΠ±Π½ΡΡ
Π°ΠΊΡΡΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ Π½Π°Ρ ΠΊΠΎΠ΄ Π½Π° Π³ΠΎΠ΄Ρ Π²ΠΏΠ΅ΡΠ΅Π΄. Π ΠΌΠΎΠ΅ΠΌ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡ, ΡΠΌΠ΅ΡΡΠΈΠΉ Π³ΡΠ°ΠΌΠΎΡΠ½ΠΎ ΠΎΠΏΠ΅ΡΠΈΡΠΎΠ²Π°ΡΡ ΡΡΠΈΠΌΠΈ ΠΌΠ΅Ρ
Π°Π½ΠΈΠ·ΠΌΠ°ΠΌΠΈ(Π² ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ Π² ΡΠ΅ΡΠΌΠΈΠ½Π°Ρ
Π±ΠΈΠ·Π½Π΅Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ², ΡΡΠ΅Π±ΡΡΡΠΈΡ
'ΠΠ΄Π΅ΡΡ ΠΈ Π‘Π΅ΠΉΡΠ°Ρ', ΡΠ΅ΡΠΌΠΈΠ½Π°Ρ
ΠΏΠΎΠΈΡΠΊΠ° Π·ΠΎΠ»ΠΎΡΠΎΠΉ ΡΠ΅ΡΠ΅Π΄ΠΈΠ½Ρ ΠΌΠ΅ΠΆΠ΄Ρ Π‘ΠΊΠΎΡΠΎΡΡΡΡ ΠΈ ΠΠΈΠ·Π°ΠΉΠ½ΠΎΠΌ) - ΠΏΡΠΎΡΠ΅ΡΡΠΈΠΎΠ½Π°Π». Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΡΠ΅ΡΡ ΠΏΠΎΠΉΠ΄Π΅Ρ ΠΏΡΠΎ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΈΠ·ΡΠ΅Π·ΠΆΠ΅Π½Π½ΡΡ ΠΈ, ΠΊΠ°Π·Π°Π»ΠΎΡΡ Π±Ρ, ΠΏΠΎΠ½ΡΡΠ½ΡΡ ΡΠ΅ΠΌΡ - ΡΠ΅ΠΌΡ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΎΠΊ, Π½ΠΎ Ρ ΠΎΠ΄Π½ΠΈΠΌ Π½Π΅Π±ΠΎΠ»ΡΡΠΈΠΌ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ - SIMD. ΠΡΡ ΡΠ΅ΠΌΡ Ρ Π²ΡΠ±ΡΠ°Π» Π½Π΅ ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎ: Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ Π²Π°ΠΆΠ½ΠΎΠΉ Π΄Π»Ρ ΠΈΠ½Π΄ΡΡΡΡΠΈΠΈ Π·Π°Π΄Π°ΡΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ»Π° ΡΠ»Π΅Π΄ΡΡΡΠ°Ρ ΠΏΠΎΠ΄Π·Π°Π΄Π°ΡΠ°: Π΅ΡΡΡ Π²Ρ
ΠΎΠ΄Π½ΠΎΠ΅ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΠ΅Π»ΡΡ
ΡΠΈΡΠ΅Π». ΠΠ°ΠΆΠ΄ΠΎΠΌΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Ρ ΡΠΎΠΏΠΎΡΡΠ°Π²Π»Π΅Π½ΠΎ ΡΠ²ΠΎΠ΅ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅. ΠΡΠΈ ΡΡΠΎΠΌ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠΎΠ±ΠΎΠΉ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΡΠ΄ΠΊΠΎΠΌ ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ², Π° Π½Π΅ ΠΈΡ
Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌΠΈ, ΡΡΠΈΡΠ°ΡΡΡΡ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠΌΠΈ ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ ΠΎΠ΄Π½ΠΎ ΠΈ ΡΠΎΠΆΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅. ΠΠ΄Π½ΠΎ ΠΈΠ· ΡΠ΅ΡΠ΅Π½ΠΈΠΉ - ΠΏΠΎΡΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π°, Π° Π·Π°ΡΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΠΊΠ°ΠΊ ΠΊΠ»ΡΡ Π² Π₯Π΅Ρ Π’Π°Π±Π»ΠΈΡΠ΅. ΠΠ΄Π½ΠΎ ΠΈΠ· Π²Π°ΠΆΠ½ΡΡ
ΡΡΠ»ΠΎΠ²ΠΈΠΉ - ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π² ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π΅ Π½Π΅ ΠΏΡΠ΅Π²ΡΡΠ°Π΅Ρ 128 ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ². ΠΠΎΠ΄ ΠΊΠ°ΡΠΎΠΌ ΡΠ°ΡΡΠΊΠ°Π·ΡΠ²Π°Ρ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ ΡΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°ΠΊΠΈΠ΅ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° Π±ΡΡΡΡΠΎ.
https://habr.com/ru/articles/785938/
#cpp #programming
π @cpp_lib
πModern Parallel Programming with C++ and Assembly Language: X86 SIMD Development Using AVX, AVX2, and AVX-512
ΠΠ²ΡΠΎΡ: Daniel Kusswurm (2022)
ΠΠ·ΡΡΠΈΡΠ΅ ΠΎΡΠ½ΠΎΠ²Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ x86 Single instruction multiple data (SIMD) Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΡ
ΡΡΠ½ΠΊΡΠΈΠΉ C++ ΠΈ ΡΠ·ΡΠΊΠ° Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ° x86-64. ΠΡΠ° ΠΊΠ½ΠΈΠ³Π° ΠΏΠΎΠ΄ΡΠ΅ΡΠΊΠΈΠ²Π°Π΅Ρ ΡΠ΅ΠΌΡ ΠΈ ΡΠ΅Ρ
Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ x86 SIMD, ΠΊΠΎΡΠΎΡΡΠ΅ Π°ΠΊΡΡΠ°Π»ΡΠ½Ρ Π΄Π»Ρ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ
, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΠΈΠ·ΠΌ Π½Π° ΡΡΠΎΠ²Π½Π΅ Π΄Π°Π½Π½ΡΡ
, Π²Π°ΠΆΠ½ΡΠΉ Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π±ΠΎΠ»ΡΡΠΈΡ
Π΄Π°Π½Π½ΡΡ
, Π±ΠΎΠ»ΡΡΠΈΡ
ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² Π΄Π°Π½Π½ΡΡ
.
Π‘ΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅ ΠΈ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΡ ΠΊΠ½ΠΈΠ³ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½Ρ ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠΌΠΎΡΡ Π²Π°ΠΌ Π±ΡΡΡΡΠΎ ΠΏΠΎΠ½ΡΡΡ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ SIMD ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠΎΠ² x86. ΠΠ½Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π±ΠΎΠ»ΡΡΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΈΡΡ
ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, ΡΡΡΡΠΊΡΡΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΡΠΎΠ±Ρ ΡΡΠΊΠΎΡΠΈΡΡ ΠΈΠ·ΡΡΠ΅Π½ΠΈΠ΅ ΠΈ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ
ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΉ ΠΈ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠ² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ SIMD.
#cpp #programming
π @cpp_lib
Π ΠΏΠΎΠ»Π³ΠΎΠ΄Π° Π½Π΅ ΠΏΡΠΎΡΠ»ΠΎ: ΡΠ΅Π»ΠΈΠ· Qt 6.7 ΠΈ Qt Creator 13. Π§ΡΠΎ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΈ ΡΡΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΎΡΡ?
Π ΡΡΠΎΠΌ ΠΌΠ΅ΡΡΡΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ΅Π»ΠΈΠ·ΠΎΠ², Ρ
ΠΎΡΠΎΡΠΈΡ
ΠΈ ΡΠ°Π·Π½ΡΡ
. Π’Π°ΠΊ, Π½Π° Π΄Π½ΡΡ
ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡ Qt Company ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π»Π° ΡΠ΅Π»ΠΈΠ· ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ° Qt 6.7. Π Π°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΏΡΠΈΠ΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡΡ ΠΏΡΠ΅ΠΆΠ½Π΅ΠΉ ΡΡΡΠ°ΡΠ΅Π³ΠΈΠΈ ΠΊΠ°ΠΊ ΠΏΠΎ ΡΡΠ°Π±ΠΈΠ»ΠΈΠ·Π°ΡΠΈΠΈ ΡΠ°Π±ΠΎΡΡ, ΡΠ°ΠΊ ΠΈ ΠΏΠΎ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ Π²Π΅ΡΠΊΠΈ Qt 6. ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠ»Π°ΡΡΠΎΡΠΌ, Π²ΠΊΠ»ΡΡΠ°Ρ Windows 10+, macOS 12+, Linux (Ubuntu 22.04, openSUSE 15.5, SUSE 15 SP5, RHEL 8.8/9.2, Debian 11.6), iOS 16+, Android 8+ (API 23+), webOS, WebAssembly, INTEGRITY, VxWorks, FreeRTOS ΠΈ QNX. ΠΠΎΠ΄ΡΠΎΠ±Π½ΠΎΡΡΠΈ β ΠΏΠΎΠ΄ ΠΊΠ°ΡΠΎΠΌ.
https://habr.com/ru/companies/ru_mts/articles/806809/
#cpp #programming
π @cpp_lib
Π Π°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΠ½Π½ΡΠ΅ ΠΏΠ°ΡΡΠ΅ΡΠ½Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΠΊ ΠΏΡΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ
ΠΡΡΡ Π±Π΅ΡΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² ΠΎΡΠΈΠ±ΠΈΡΡΡΡ ΠΏΡΠΈ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈ ΠΊΠΎΠ΄Π°. ΠΠ΄Π½Π°ΠΊΠΎ ΠΈΠ½ΠΎΠ³Π΄Π° ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΌΠ΅ΡΠΈΡΡ ΡΠ²Π½ΡΠ΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΠ΅ Π·Π°ΠΊΠΎΠ½ΠΎΠΌΠ΅ΡΠ½ΠΎΡΡΠΈ, ΠΊΠ°ΠΊ ΠΈ Π³Π΄Π΅ ΠΎΡΠΈΠ±Π°ΡΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΡ. ΠΠΎΠ³ΠΎΠ²ΠΎΡΠΈΠΌ ΠΎ ΠΊΠΎΠ΄Π΅, ΠΊΠΎΡΠΎΡΡΠΉ "ΠΏΡΠΈΡΡΠ³ΠΈΠ²Π°Π΅Ρ" ΠΎΠΏΠ΅ΡΠ°ΡΠΊΠΈ.
ΠΠ° ΡΡΠΌ ΠΎΡΠ½ΠΎΠ²Π°Π½Ρ Π½Π°Π±Π»ΡΠ΄Π΅Π½ΠΈΡ
Π‘ ΡΠ΅Π»ΡΡ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΠΏΡΠΎΠ΄Π²ΠΈΠΆΠ΅Π½ΠΈΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π°ΡΠΎΡΠ° ΠΊΠΎΠ΄Π° PVS-Studio ΠΌΡ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΠΌ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΠΎΡΠΊΡΡΡΡΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΡ. ΠΠ°ΠΉΠ΄Ρ ΠΎΡΠΈΠ±ΠΊΠΈ, ΠΌΡ ΡΠΎΠΎΠ±ΡΠ°Π΅ΠΌ ΠΎ Π½ΠΈΡ
Π°Π²ΡΠΎΡΠ°ΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ², ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΎΠ½ΠΈΡΡΠ΅ΠΌ ΠΈΡ
ΠΈ ΠΏΠΈΡΠ΅ΠΌ ΡΡΠ°ΡΡΠΈ ΠΏΡΠΎ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΠ΅ ΡΠ»ΡΡΠ°ΠΈ.
Π Π°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Ρ Π²ΡΠ΅ ΡΡΠΈ ΠΎΡΠΈΠ±ΠΊΠΈ, Ρ ΠΏΠΎΡΡΠ΅ΠΏΠ΅Π½Π½ΠΎ Π·Π°ΠΌΠ΅ΡΠ°Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΠΏΠΎΠ²ΡΠΎΡΡΡΡΠΈΠ΅ΡΡ ΠΏΠ°ΡΡΠ΅ΡΠ½Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΠΊ. ΠΠ° ΡΠ΅Π΄ΠΊΠΈΠΌ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΎΠ½ΠΈ Π½Π΅ Π·Π°Π²ΠΈΡΡΡ ΠΎΡ ΡΠ·ΡΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΠΎ ΠΊΡΠ°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅ΡΠ΅, ΠΎΠ½ΠΈ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΡΠ²ΠΎΠΉΡΡΠ²Π΅Π½Π½Ρ ΠΊΠΎΠ΄Ρ, Π½Π°ΠΏΠΈΡΠ°Π½Π½ΠΎΠΌΡ Π½Π° C, C++, C#, Java. Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ Ρ ΠΎΠΏΠΈΡΡ 7 ΠΏΠ°ΡΡΠ΅ΡΠ½ΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π·Π°ΠΌΠ΅ΡΠΈΠ» ΠΊ Π½Π°ΡΡΠΎΡΡΠ΅ΠΌΡ ΠΌΠΎΠΌΠ΅Π½ΡΡ:
ΠΡΡΠ΅ΠΊΡ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ ΡΡΡΠΎΠΊΠΈ.
ΠΠ»ΠΎΠΏΠΎΠ»ΡΡΠ½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ memset.
ΠΠ΅Π²Π΅ΡΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ.
ΠΠ΅Π²Π΅ΡΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
ΠΡΠΈΠ±ΠΊΠΈ ΡΠ°Π±ΠΎΡΡ Ρ Π΄Π°ΡΠ°ΠΌΠΈ ΠΈ Π²ΡΠ΅ΠΌΠ΅Π½Π΅ΠΌ.
ΠΠ΅ΡΡΠ°ΡΡΠ»ΠΈΠ²ΡΠ΅ ΡΠΈΡΠ»Π°: 0, 1, 2.
ΠΡΠΈΠ±ΠΊΠ° Π½Π° Π΅Π΄ΠΈΠ½ΠΈΡΡ (off-by-one error).
https://habr.com/ru/companies/pvs-studio/articles/756872/
#cpp #programming
π @cpp_lib
π¦Ύ ΠΡΠ²ΠΎΠΉΡΠ΅ ΠΎΡΠ½ΠΎΠ²Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π½Π°ΡΠΈΠ²Π½ΡΡ
ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΏΠΎΠ΄ ΠΠ‘ ΠΠ²ΡΠΎΡΠ° 5
π ΠΠ΄ΡΠΌ Π²Π°Ρ Π½Π° Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΠΎΠΌ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠΌ ΡΡΠΎΠΊΠ΅ ΠΎΡ OTUS, Π³Π΄Π΅ Π²Ρ Π²ΠΌΠ΅ΡΡΠ΅ Ρ ΠΎΠΏΡΡΠ½ΡΠΌ ΡΠΊΡΠΏΠ΅ΡΡΠΎΠΌ:
- ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡΠ΅ΡΡ Ρ ΡΠΎΡΡΠΈΠΉΡΠΊΠΎΠΉ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ ΠΠ²ΡΠΎΡΠ°, Π΅Ρ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎΠΌ ΠΈ ΠΎΡΠ½ΠΎΠ²Π½ΡΠΌΠΈ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠ°ΠΌΠΈ; - ΠΏΠΎΡΠΌΠΎΡΡΠΈΡΠ΅ Π½Π° ΡΡΡΡΠΊΡΡΡΡ ΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ Π½Π°ΡΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π΄Π»Ρ ΠΠ²ΡΠΎΡΠ° 5.0; - ΠΎΠ±ΡΡΠ΄ΠΈΡΠ΅ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΡΡΠ°ΠΏΡ Π΅Π³ΠΎ ΡΠ±ΠΎΡΠΊΠΈ ΠΈ Π·Π°ΠΏΡΡΠΊΠ°; - ΡΠ°Π·Π±Π΅ΡΠ΅ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡΠ΅Π΅ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅ Π² Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΡΡ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΡ Lipstick ΡΠ΅ΡΠ΅Π· DBus.ΠΡΡΡΠ΅ΡΠ°Π΅ΠΌΡΡ 17 Π°ΠΏΡΠ΅Π»Ρ Π² 20:00 ΠΌΡΠΊ Π² ΡΠ°ΠΌΠΊΠ°Ρ ΠΊΡΡΡΠ° Β«Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΠΏΡΠΈΠΊΠ»Π°Π΄Π½ΠΎΠ³ΠΎ ΠΠ Π½Π° Qt ΠΈ ΠΠ‘ ΠΠ²ΡΠΎΡΠ°Β». ΠΠΎΡΡΡΠΏΠ½Π° ΡΠ°ΡΡΡΠΎΡΠΊΠ° Π½Π° ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅! π ΠΡΠΎΠΉΠ΄ΠΈΡΠ΅ ΠΊΠΎΡΠΎΡΠΊΠΈΠΉ ΡΠ΅ΡΡ ΠΏΡΡΠΌΠΎ ΡΠ΅ΠΉΡΠ°Ρ, ΡΡΠΎΠ±Ρ ΠΏΠΎΡΠ΅ΡΠΈΡΡ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΡΠΉ ΡΡΠΎΠΊ ΠΈ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π·Π°ΠΏΠΈΡΡ: https://vk.cc/cw7kfH
Π Π΅ΠΊΠ»Π°ΠΌΠ°. ΠΠΠ Β«ΠΡΡΡ ΠΎΠ½Π»Π°ΠΉΠ½-ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅Β», ΠΠΠ Π 1177746618576πData Parallel C++
ΠΠ²ΡΠΎΡ: James Reinders, Ben Ashbaugh, James Brodman, Michael Kinsner, John Pennycook, Xinmin Tian (2020)
Π£Π·Π½Π°ΠΉΡΠ΅, ΠΊΠ°ΠΊ ΡΡΠΊΠΎΡΠΈΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π° C++ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΠΈΠ·ΠΌΠ°. ΠΡΠ° ΠΊΠ½ΠΈΠ³Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ C++ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ°ΠΌ Π±ΡΡΡ Π² Π°Π²Π°Π½Π³Π°ΡΠ΄Π΅ ΡΡΠΎΠΉ Π·Π°Ρ
Π²Π°ΡΡΠ²Π°ΡΡΠ΅ΠΉ ΠΈ Π²Π°ΠΆΠ½ΠΎΠΉ ΡΠ΅Ρ
Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ Π²ΡΠ²Π΅ΡΡΠΈ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ Π½Π° Π½ΠΎΠ²ΡΠΉ ΡΡΠΎΠ²Π΅Π½Ρ. ΠΠ½Π° ΠΏΠΎΠ»Π½Π° ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΡ
ΡΠΎΠ²Π΅ΡΠΎΠ², ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΡΡ
ΠΎΠ±ΡΡΡΠ½Π΅Π½ΠΈΠΉ ΠΈ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ² ΠΊΠΎΠ΄Π°, ΠΈΠ»Π»ΡΡΡΡΠΈΡΡΡΡΠΈΡ
ΠΊΠ»ΡΡΠ΅Π²ΡΠ΅ ΡΠ΅ΠΌΡ.
#cpp #programming
π @cpp_lib
ΠΠ°Π»ΠΎΠΈΠ·Π²Π΅ΡΡΠ½ΡΠ΅ ΠΈ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΠ΅ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ C ΠΈ C++
Π C ΠΈ C++ Π΅ΡΡΡ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ, ΠΎ ΠΊΠΎΡΠΎΡΡΡ
Π²Π°Ρ Π²ΡΡΠ΄ Π»ΠΈ ΡΠΏΡΠΎΡΡΡ Π½Π° ΡΠΎΠ±Π΅ΡΠ΅Π΄ΠΎΠ²Π°Π½ΠΈΠΈ (Π²Π΅ΡΠ½Π΅Π΅, Π½Π΅ ΡΠΏΡΠΎΡΠΈΠ»ΠΈ Π±Ρ Π΄ΠΎ ΡΡΠΎΠ³ΠΎ ΠΌΠΎΠΌΠ΅Π½ΡΠ°). ΠΠΎΡΠ΅ΠΌΡ Π½Π΅ ΡΠΏΡΠΎΡΡΡ? ΠΠΎΡΠΎΠΌΡ ΡΡΠΎ ΡΠ°ΠΊΠΈΠ΅ Π°ΡΠΏΠ΅ΠΊΡΡ ΠΈΠΌΠ΅ΡΡ ΠΌΠ°Π»ΠΎ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π² ΠΏΠΎΠ²ΡΠ΅Π΄Π½Π΅Π²Π½ΠΎΠΉ ΡΠ°Π±ΠΎΡΠ΅ ΠΈΠ»ΠΈ ΠΏΠΎΠΏΡΠΎΡΡΡ ΠΌΠ°Π»ΠΎΠΈΠ·Π²Π΅ΡΡΠ½Ρ.
Π¦Π΅Π»ΡΡ ΡΡΠ°ΡΡΠΈ ΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π΅ ΠΎΡΠ²Π΅ΡΠ΅Π½ΠΈΠ΅ ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ ΡΠ·ΡΠΊΠ° ΠΈΠ»ΠΈ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠ° ΠΊ ΡΠΎΠ±Π΅ΡΠ΅Π΄ΠΎΠ²Π°Π½ΠΈΡΠΌ, ΠΈ ΡΠΆ ΡΠ΅ΠΌ Π±ΠΎΠ»Π΅Π΅ Π½Π΅Ρ ΡΠ΅Π»ΠΈ ΡΠ°ΡΡΠΊΠ°Π·Π°ΡΡ Π²ΡΠ΅ ΠΏΠΎΡΠ°ΠΉΠ½ΡΠ΅ ΡΠΌΡΡΠ»Ρ ΡΠ·ΡΠΊΠ°, Ρ. ΠΊ. Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ Π½Π΅ Ρ
Π²Π°ΡΠΈΡ ΠΎΠ΄Π½ΠΎΠΉ ΡΡΠ°ΡΡΠΈ ΠΈ Π΄Π°ΠΆΠ΅ ΠΊΠ½ΠΈΠ³ΠΈ. ΠΠ°ΠΏΡΠΎΡΠΈΠ², ΡΡΠ°ΡΡΡ Π½ΡΠΆΠ½Π° Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠΊΠ°Π·Π°ΡΡ ΠΌΠ°Π»ΠΎΠΈΠ·Π²Π΅ΡΡΠ½ΡΠ΅ ΠΈ ΡΡΡΠ°Π½Π½ΡΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΡ, ΠΏΡΠΈΠ½ΡΡΡΠ΅ Π² ΡΠ·ΡΠΊΠ°Ρ
C ΠΈ C++. Π‘Π²ΠΎΠ΅Π³ΠΎ ΡΠΎΠ΄Π° ΡΠΎΠ»ΡΠ½ΠΊΠ° ΠΈΠ· ΡΠ°ΠΊΡΠΎΠ². ΠΠΎΠΏΡΠΎΡ βΡΡΠΎ Π΄Π΅Π»Π°ΡΡ Ρ ΡΡΠΈΠΌΠΈ Π·Π½Π°Π½ΠΈΡΠΌΠΈ?β Ρ ΠΎΡΡΠ°Π²Π»ΡΡ ΡΠΈΡΠ°ΡΠ΅Π»Ρ.
ΠΡΠ»ΠΈ Π²Ρ, ΠΊΠ°ΠΊ ΠΈ Ρ, Π»ΡΠ±ΠΈΡΠ΅ ΠΈ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡΠ΅ΡΠ΅ΡΡ C/C++, ΠΈ ΡΡΠΈ ΡΠ·ΡΠΊΠΈ ΡΠ²Π»ΡΡΡΡΡ Π½Π΅ΠΎΡΡΠ΅ΠΌΠ»Π΅ΠΌΠΎΠΉ ΡΠ°ΡΡΡΡ Π²Π°ΡΠ΅ΠΉ ΠΆΠΈΠ·Π½ΠΈ, Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ ΠΈ Π΅Π³ΠΎ ΡΠ³Π»ΡΠ±Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΈΠ·ΡΡΠ΅Π½ΠΈΡ, ΡΠΎ ΡΡΠ° ΡΡΠ°ΡΡΡ Π΄Π»Ρ Π²Π°Ρ. ΠΠΎ Π±ΠΎΠ»ΡΡΠ΅ΠΉ ΡΠ°ΡΡΠΈ Ρ Π½Π°Π΄Π΅ΡΡΡ, ΡΡΠΎ ΡΡΠ° ΡΡΠ°ΡΡΡ ΡΠΌΠΎΠΆΠ΅Ρ ΡΠ°Π·Π²Π»Π΅ΡΡ ΠΈ Π·Π°ΡΡΠ°Π²ΠΈΡΡ ΠΏΠΎΡΠ°Π±ΠΎΡΠ°ΡΡ Π³ΠΎΠ»ΠΎΠ²ΠΎΠΉ. Π Π΅ΡΠ»ΠΈ ΠΏΠΎΠ»ΡΡΠΈΡΡΡ, ΡΠ°ΡΡΠΊΠ°Π·Π°ΡΡ ΡΡΠΎ-ΡΠΎ, ΡΠ΅Π³ΠΎ Π²Ρ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π΅ΡΠ΅ Π½Π΅ Π·Π½Π°Π»ΠΈ.
ΠΠ°ΡΠ½Ρ Ρ Ρ ΠΏΡΠΎΡΡΡΡ
, Π½ΠΎ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΡ
ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠ΅ΠΉ ΡΠ·ΡΠΊΠΎΠ² C ΠΈ C++, Π° ΡΠΎΡΠ½Π΅Π΅ ΠΈΡ
ΡΠ°Π·Π»ΠΈΡΠΈΠΉ.
https://habr.com/ru/articles/786096/
#cpp #programming
π @cpp_lib
π¦Ύ Π’Ρ ΠΊΡΡΡΠΎ ΠΊΠΎΠ΄ΠΈΡΡ Π½Π° Π‘++, really?
ΠΠΎΠΏΡΠΎΠ±ΡΠΉ ΠΏΡΠΎΠΉΡΠΈ ΡΠ΅ΡΡ Π½Π°Ρ ΠΏΠΎ C++ ΠΈ ΠΏΡΠΎΠ²Π΅ΡΡ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ΠΈΡ Π»ΠΈ ΡΠ΅Π±Π΅ Π½Π°Ρ ΠΊΡΡΡ
ΠΡΠ²Π΅ΡΠΈΡΡ β ΠΏΡΠΎΠΉΠ΄Π΅ΡΡ Π½Π° ΠΏΡΠΎΠ΄Π²ΠΈΠ½ΡΡΡΠΉ ΠΊΡΡΡ "C++ Developer. Professional" ΠΎΡ OTUS ΠΏΠΎ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎΠΉ ΡΠ΅Π½Π΅ + ΠΏΠΎΠ»ΡΡΠΈΡΡ Π·Π°ΠΏΠΈΡΡ ΠΌΠ°ΡΡΠ΅Ρ-ΠΊΠ»Π°ΡΡΠ° ΠΎΡ ΠΏΡΠ΅ΠΏΠΎΠ΄Π°Π²Π°ΡΠ΅Π»Ρ ΠΊΡΡΡΠ°.
π ΠΠ ΠΠΠ’Π Π’ΠΠ‘Π’: https://vk.cc/cw4Hsh
Π Π΅ΠΊΠ»Π°ΠΌΠ°. ΠΠΠ Β«ΠΡΡΡ ΠΎΠ½Π»Π°ΠΉΠ½-ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅Β», ΠΠΠ Π 1177746618576ΠΡΡΡ ΠΏΡΠΎΠ΄Π²ΠΈΠ½ΡΡΡΡ
ΡΠ΅Ρ
Π½ΠΈΠΊ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π² C++: ΠΡ reserve() Π΄ΠΎ piecewise_construct
ΠΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ Ρ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°ΠΌΠΈ Π΄ΠΎ ΠΊΠΎΠ½ΡΡΠ°Π½Ρ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ β C++ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ ΠΌΠ½ΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΡ
ΡΠ΅Ρ
Π½ΠΈΠΊ (ΠΊΠ°ΠΊ Π² ΡΡΠΎΠΌ Π·Π½Π°ΠΌΠ΅Π½ΠΈΡΠΎΠΌ ΠΌΠ΅ΠΌΠ΅ :)). Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΎΠ΄Π²ΠΈΠ½ΡΡΡΡ
ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ: ΠΎΡ reserve() ΠΈ emplace_back Π΄Π»Ρ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ², Π΄ΠΎ piecewise_construct ΠΈ forward_as_tuple Π΄Π»Ρ ΠΊΠΎΡΡΠ΅ΠΆΠ΅ΠΉ. ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΡ ΡΡΠΈΠΌ ΡΠ΅Ρ
Π½ΠΈΠΊΠ°ΠΌ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΌΠ΅Π½ΡΡΠΈΡΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΠΈ Π±ΠΎΠ»Π΅Π΅ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅.
https://www.cppstories.com/2023/five-adv-init-techniques-cpp/
#cpp #programming
π @cpp_lib
15 Π»Π΅Ρ ΠΏΠΈΡΡ Π½Π° C++ - ΡΠΎΠ²Π΅ΡΡ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ°ΠΌ
Π― ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡ Π²ΠΈΠ΄Π΅ΠΎΠΈΠ³Ρ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ C++ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠ·ΡΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠΆΠ΅ 15 Π»Π΅Ρ. ΠΠΎΠ½Π΅ΡΠ½ΠΎ, Π·Π° Π²ΡΠ΅ΠΌΡ ΠΌΠΎΠ΅ΠΉ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠΎΠΌ Ρ ΠΏΠ΅ΡΠ΅Ρ
ΠΎΠ΄ΠΈΠ» Π½Π° Π΄ΡΡΠ³ΠΈΠ΅ ΡΠ·ΡΠΊΠΈ, Π½ΠΎ Ρ Π±Ρ ΡΠΊΠ°Π·Π°Π», ΡΡΠΎ C++ Π±ΡΠ» ΠΎΡΠ½ΠΎΠ²Π½ΡΠΌ Π΄Π»Ρ ΠΌΠ΅Π½Ρ Π²ΠΎ Π²ΡΠ΅Ρ
ΠΌΠΎΠΈΡ
Ρ
ΠΎΠ±Π±ΠΈ ΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΡ
ΠΏΡΠΎΠ΅ΠΊΡΠ°Ρ
.
ΠΈΡΡΠΎΡΠ½ΠΈΠΊ
#cpp #programming
π @cpp_lib
ΠΠ΅ Π·Π½Π°Π΅ΡΠ΅, ΠΊΠ°ΠΊ ΡΡΠ°ΡΡ ΡΡΠΏΠ΅ΡΠ½ΡΠΉ Π²ΠΈΡΡΡΠ½ΡΠΌ Π°Π½Π°Π»ΠΈΡΠΈΠΊΠΎΠΌ?
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΎΠΊΠ°ΡΠ°ΡΡ ΡΠ²ΠΎΡ ΠΊΠ²Π°Π»ΠΈΡΠΈΠΊΠ°ΡΠΈΡ ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΠΎ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΠΎ ΠΈ Π²ΡΠ΅Π³ΠΎ Π·Π° ΠΏΠ°ΡΡ ΡΠ°ΡΠΎΠ²:
- ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡ ΡΠ΅ΠΌΡ ΠΏΡΠΎΡΡΡΡ
ΡΠ΅Ρ
Π½ΠΈΠΊ ΠΈΠ½ΠΆΠ΅ΠΊΡΠΎΠ²;
- ΠΎΡΠ²ΠΎΠΈΡΡ Π½ΠΎΠ²ΡΡ ΡΠ΅Ρ
Π½ΠΈΠΊΡ;
- Π½Π°ΠΏΠΈΡΠ°ΡΡ ΡΠ΅ΡΡΠΎΠ²ΡΠΉ ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΠΈΠ½ΠΆΠ΅ΠΊΡΠΈΡΡ ΠΊΠΎΠ΄.
ΠΡΡΡΠ΅ΡΠ°Π΅ΠΌΡΡ 15 Π°ΠΏΡΠ΅Π»Ρ Π² 20:00 ΠΌΡΠΊ Π½Π° Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΠΎΠΌ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠΌ ΡΡΠΎΠΊΠ΅ Β«Reflective DLL injectionΒ» ΠΎΡ OTUS. Π‘ΠΏΠΈΠΊΠ΅Ρ ΠΡΡΡΡ ΠΠ°ΠΊΡΠ»ΠΎΠ² β Ex-Π²ΠΈΡΡΡΠ½ΡΠΉ Π°Π½Π°Π»ΠΈΡΠΈΠΊ Π² Kaspersky Lab.
ΠΠ°Π½ΡΡΠΈΠ΅ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΈΡΡΠΎΡΠ΅Π½ΠΎ ΠΊ ΡΡΠ°ΡΡΡ ΠΊΡΡΡΠ° Β«Reverse engineeringΒ». ΠΠΎΡΡΡΠΏΠ½ΠΎ ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅ Π² ΡΠ°ΡΡΡΠΎΡΠΊΡ.
ΠΡΠΎΠΉΠ΄ΠΈΡΠ΅ ΠΊΠΎΡΠΎΡΠΊΠΈΠΉ ΡΠ΅ΡΡ ΠΏΡΡΠΌΠΎ ΡΠ΅ΠΉΡΠ°Ρ, ΡΡΠΎΠ±Ρ ΠΏΠΎΡΠ΅ΡΠΈΡΡ Π²Π΅Π±ΠΈΠ½Π°Ρ ΠΈ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π·Π°ΠΏΠΈΡΡ: https://vk.cc/cw4lwC
Π Π΅ΠΊΠ»Π°ΠΌΠ°. ΠΠΠ Β«ΠΡΡΡ ΠΎΠ½Π»Π°ΠΉΠ½-ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅Β», ΠΠΠ Π 1177746618576, www.otus.ru
ΠΠ½ΡΠΎΠ½ ΠΠΎΠ»ΡΡ
ΠΈΠ½ β C++ ΡΡΡΠΊΠΈ ΠΈΠ· userver
ΠΠ½ΡΠΎΠ½ ΡΠ°ΡΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΠΎ Π½ΠΎΠ²ΡΡ
C++ ΡΡΡΠΊΠ°Ρ
ΠΈ ΠΏΡΠΈΠ΅ΠΌΠ°Ρ
:
β LazyPrvalue;
β ΠΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΠ΅ ODR violation ΠΈΠ· C++ ΠΊΠΎΠ΄Π°;
β Π‘Π°ΠΌΠ°Ρ ΡΡΠ΄Π½Π°Ρ bimap.
ΠΈΡΡΠΎΡΠ½ΠΈΠΊ
#cpp #programming
π @cpp_lib
