C++ High Performance, 2nd Edition
کتاب C++ High Performance, Second Edition (سی پلاس پلاس با کارایی بالا، ویرایش دوم)، شما را در بهینه سازی عملکرد برنامههای C++، راهنمایی میکند. این کار به آنها اجازه میدهد تا سریعتر اجرا شوند و منابع کمتری را روی دستگاهی که بر روی آن اجرا میشوند مصرف کنند؛ بدون اینکه خوانایی کد شما به خطر بیفتد.
این کتاب، با معرفی مختصر زبان سی پلاس پلاس و برخی از مفاهیم مدرن آن آغاز میشود. هنگامی که با مبانی آشنا شدید، آماده اندازه گیری، شناسایی و ریشه کن کردن گلوگاههای کدهای C++ خود خواهید بود. با دنبال کردن این روند، به تدریج سبک کدنویسی خود را بهبود خواهید بخشید. سپس این کتاب به بررسی بهینه سازی ساختمان داده، مدیریت حافظه و نحوه استفاده کارآمد از آن در مورد کش CPU میپردازد.
پس از پایهگذاری، این کتاب به شما آموزش میدهد تا از الگوریتمها، رنجها و containerهای کتابخانه استاندارد استفاده کنید تا به اجرای سریعتر دست یابید، کدی خواناتر بنویسید و از تکرارکنندههای (iterators) سفارشیشده استفاده کنید. این کتاب، مثالهای عملی از برنامه نویسی متای سی پلاس پلاس، coroutine ها، رفلکشن برای کاهش کدهای تکراری، اشیاء پراکسی برای انجام بهینهسازیها در پشت صحنه، برنامهنویسی همزمان و ساختمان دادههای بدون قفل ارائه میدهد. در نهایت این کتاب با مروری بر الگوریتمهای موازی به پایان میرسد. با به پایان رساندن این کتاب، شما این توانایی را خواهید داشت که از هر ابزاری که لازم است برای افزایش کارایی پروژههای ++C خود استفاده کنید.
ویژگیهای کلیدی
- به روز رسانی شده به C++20 با کدهای کاملاً بازنگری شده و محتوای بیشتر در مورد مدیریت خطا، بنچمارک گرفتن، تخصیص دهندههای حافظه و برنامه نویسی همزمان
- بررسی جدیدترین ویژگیهای C++20 از جمله مفاهیم، rangeها و coroutine ها
- استفاده از ساختارها و تکنیکهای سی پلاس پلاس برای بهینه سازی ساختمان داده و مدیریت حافظه موثر
مطالبی که در کتاب C++ High Performance: Master the art of optimizing the functioning of your C++ code, 2nd Edition، یاد خواهید گرفت:
- نوشتن ساختمان دادههای تخصصی برای کدهای حساس به عملکرد
- استفاده از تکنیکهای metaprogramming مدرن برای کاهش محاسبات زمان اجرا
- دستیابی به مدیریت کارآمد حافظه با استفاده از تخصیص دهندههای حافظه سفارشی
- کاهش کدهای تکراری با استفاده از تکنیکهای reflection
- بهره مندی از مزایای برنامه نویسی همزمان بدون قفل
- دید پیدا کردن نسبت به بهینه سازیهای ظریف مورد استفاده توسط الگوریتمهای کتابخانه استاندارد
- ساختن الگوریتمها با استفاده از کتابخانه ranges
- توسعه توانایی بکارگیری جنبههای برنامه نویسی متا مثل constexpr، constraintها و concept ها
- پیاده سازی lazy generatorها و وظایف asynchronous با استفاده از coroutineهای C++20
این کتاب برای چه کسانی است؟
اگر شما یک توسعه دهنده ++C هستید که به دنبال بهبود کارایی کد خود هستید و یا فقط میخواهید که مهارتهای خود را ارتقا دهید، این کتاب برای شما مناسب است.