کتاب اسرار بهینه‌سازی سورس کد: تکنیک‌های جریان داده برای نرم‌افزارهای نهفته

249,950 تومان

📚 کتاب آموزشی جامع

📚 اطلاعات کتاب

عنوان کتاب: کتاب اسرار بهینه‌سازی سورس کد: تکنیک‌های جریان داده برای نرم‌افزارهای نهفته

موضوع کلی: بهینه‌سازی کد و معماری نرم‌افزارهای نهفته

موضوع میانی: بهینه‌سازی کد مبتنی بر تحلیل جریان داده در سیستم‌های نهفته

📋 سرفصل‌های کتاب (100 موضوع)

  • 1. مقدمه: اهمیت بهینه‌سازی در نرم‌افزارهای نهفته
  • 2. تعریف نرم‌افزارهای نهفته و چالش‌های خاص آن‌ها
  • 3. معرفی کتاب "Source code optimization techniques for data flow dominated embedded software"
  • 4. هدف و ساختار دوره آموزشی
  • 5. مروری بر معماری‌های رایج پردازنده‌های نهفته
  • 6. مفهوم جریان داده (Data Flow) در نرم‌افزارهای نهفته
  • 7. اهمیت تحلیل جریان داده برای بهینه‌سازی
  • 8. انواع داده و نحوه نمایش آن‌ها در سیستم‌های نهفته
  • 9. مفاهیم پایه بهینه‌سازی کد
  • 10. انواع بهینه‌سازی: زمان اجرا، حافظه، مصرف انرژی
  • 11. ابزارهای تحلیل ایستا (Static Analysis)
  • 12. ابزارهای تحلیل پویا (Dynamic Analysis)
  • 13. مقدمه بر کامپایلرها و نقش آن‌ها در بهینه‌سازی
  • 14. مراحل کامپایل: پیش‌پردازش، ترجمه، بهینه‌سازی، تولید کد
  • 15. سطوح مختلف بهینه‌سازی کامپایلر (O0, O1, O2, O3, Os)
  • 16. نحوه فعال‌سازی و تنظیم سطوح بهینه‌سازی کامپایلر
  • 17. درک زبان ماشین و اسمبلی
  • 18. روش‌های ساده برای کاهش حجم کد
  • 19. روش‌های ساده برای افزایش سرعت اجرا
  • 20. مبانی تحلیل جریان داده
  • 21. نمایش گراف جریان داده (Data Flow Graph - DFG)
  • 22. انواع جریان داده: جریان داده کنترلی، جریان داده داده‌ای
  • 23. تعریف و انواع متغیرها: محلی، سراسری، ایستا
  • 24. مفهوم مقداردهی اولیه (Initialization) متغیرها
  • 25. کشف متغیرهای بلا استفاده (Dead Variables)
  • 26. حذف کد بلا استفاده (Dead Code Elimination)
  • 27. بهینه‌سازی حلقه (Loop Optimization)
  • 28. مفاهیم پایه حلقه‌ها: for, while, do-while
  • 29. تکرار حلقه (Loop Unrolling)
  • 30. ادغام حلقه‌ها (Loop Fusion)
  • 31. تسطیح حلقه‌ها (Loop Tiling)
  • 32. تغییر ترتیب حلقه‌ها (Loop Interchange)
  • 33. استخراج حلقه‌ها (Loop Extraction)
  • 34. بهینه‌سازی عبارات (Expression Optimization)
  • 35. ساده‌سازی عبارات ریاضی
  • 36. حذف محاسبات تکراری
  • 37. استفاده از ثوابت در زمان کامپایل (Constant Folding)
  • 38. تغییر مقادیر ثابت (Constant Propagation)
  • 39. استفاده از ثوابت درون خطی (Inline Constants)
  • 40. بهینه‌سازی فراخوانی توابع (Function Call Optimization)
  • 41. درون‌خطی‌سازی توابع (Function Inlining)
  • 42. حذف توابع بلا استفاده (Dead Function Elimination)
  • 43. بهینه‌سازی پارامترهای توابع
  • 44. مدیریت پشته (Stack Management)
  • 45. بهینه‌سازی فراخوانی‌های بازگشتی (Recursive Function Optimization)
  • 46. بهینه‌سازی عبارات شرطی (Conditional Expression Optimization)
  • 47. حذف شرط‌های تکراری
  • 48. ساده‌سازی گزاره‌های شرطی
  • 49. بهینه‌سازی استفاده از ثوابت در گزاره‌های شرطی
  • 50. مقدمه بر معماری‌های پردازنده‌های نهفته
  • 51. حافظه نهان (Cache Memory) و تأثیر آن بر عملکرد
  • 52. بهینه‌سازی برای حافظه نهان
  • 53. مفاهیم دسترسی به حافظه (Memory Access)
  • 54. الگوهای دسترسی به حافظه (Memory Access Patterns)
  • 55. بهینه‌سازی دسترسی به حافظه
  • 56. کاهش دسترسی‌های غیرضروری به حافظه
  • 57. استفاده از ثوابت ثابت (Static Variables)
  • 58. استفاده بهینه از متغیرهای سراسری (Global Variables)
  • 59. استفاده بهینه از متغیرهای محلی (Local Variables)
  • 60. تکنیک‌های انتقال متغیر (Variable Allocation)
  • 61. بهینه‌سازی دسترسی به آرایه‌ها (Array Access Optimization)
  • 62. دسترسی خطی به آرایه‌ها
  • 63. دسترسی غیرخطی به آرایه‌ها
  • 64. بهینه‌سازی برای داده‌های ساختاریافته (Structs and Unions)
  • 65. مدیریت پشته برای struct و union
  • 66. بهینه‌سازی فیلد چیدمان (Field Layout Optimization)
  • 67. مقدمه بر پردازش موازی و نهفته
  • 68. موازی‌سازی در سطح دستورالعمل (Instruction-Level Parallelism - ILP)
  • 69. مفاهیم Pipeline و Out-of-Order Execution
  • 70. استفاده از دستورالعمل‌های SIMD (Single Instruction, Multiple Data)
  • 71. بهینه‌سازی برای معماری‌های SIMD
  • 72. مفاهیم پردازش موازی در سطح داده (Data-Level Parallelism)
  • 73. بهینه‌سازی برای پردازش موازی در سطح داده
  • 74. مفاهیم پردازش موازی در سطح ترد (Thread-Level Parallelism)
  • 75. مدیریت همزمانی (Concurrency Management)
  • 76. بهینه‌سازی برای پردازش موازی در سطح ترد
  • 77. مدیریت حافظه مشترک (Shared Memory)
  • 78. قفل‌ها (Locks) و بن‌بست (Deadlocks)
  • 79. بهینه‌سازی برای سیستم‌های با پردازشگرهای چندگانه (Multi-core)
  • 80. مقدمه بر سیستم‌های زمان واقعی (Real-Time Systems)
  • 81. الزامات زمان‌بندی (Scheduling Requirements)
  • 82. بهینه‌سازی برای سیستم‌های زمان واقعی
  • 83. مفاهیم قطعیت (Determinism)
  • 84. بهینه‌سازی برای اطمینان از قطعیت
  • 85. بهینه‌سازی برای محدودیت‌های توان (Power Constraints)
  • 86. تکنیک‌های مدیریت توان
  • 87. بهینه‌سازی برای کاهش مصرف توان
  • 88. بهینه‌سازی برای محدودیت‌های حافظه (Memory Constraints)
  • 89. انتخاب ساختارهای داده مناسب
  • 90. مدیریت حافظه پویا (Dynamic Memory Management)
  • 91. تکنیک‌های کاهش نیاز به حافظه پویا
  • 92. بهینه‌سازی برای سیستم‌های با منابع محدود (Resource-Constrained Systems)
  • 93. تجزیه و تحلیل پیچیدگی زمانی (Time Complexity Analysis)
  • 94. تجزیه و تحلیل پیچیدگی فضایی (Space Complexity Analysis)
  • 95. روش‌های اندازه‌گیری عملکرد (Performance Profiling)
  • 96. ابزارهای پروفایلینگ (Profiling Tools)
  • 97. تفسیر نتایج پروفایلینگ
  • 98. بهینه‌سازی مبتنی بر پروفایلینگ
  • 99. تجزیه و تحلیل گلوگاه (Bottleneck Analysis)
  • 100. شناسایی بخش‌های کند کد

نظرات

هنوز نظری ثبت نشده است.

وارد شوید تا نظر ثبت کنید.