You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: content/chapter 4/4.25-profiling.md
+4-4Lines changed: 4 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -73,7 +73,7 @@ func main() {
73
73
74
74
#### 4.25.1.2.1 پشته (Stack)
75
75
76
-
با اصول اولیه شروع کنیم. Go میتواند حافظه را در یکی از دو مکان تخصیص دهد: پشته یا هیپ. هر goroutine پشته خاص خود را دارد که یک ناحیه پیوسته از حافظه است. علاوه بر این، یک ناحیه بزرگ از حافظه وجود دارد که بین goroutineها به اشتراک گذاشته میشود و به آن {{< tooltip text="هیپ" note="اheap" >}} میگویند. این حالت را میتوان در تصویر زیر مشاهده کرد.
76
+
با اصول اولیه شروع کنیم. Go میتواند حافظه را در یکی از دو مکان تخصیص دهد: پشته یا هیپ. هر goroutine پشته خاص خود را دارد که یک ناحیه پیوسته از حافظه است. علاوه بر این، یک ناحیه بزرگ از حافظه وجود دارد که بین goroutineها به اشتراک گذاشته میشود و به آن {{< tooltip text="هیپ" note="heap" >}} میگویند. این حالت را میتوان در تصویر زیر مشاهده کرد.
@@ -264,11 +264,11 @@ Entering interactive mode (type "help" for commands, "o" for options)
264
264
265
265
### 4.25.2.2 پروفایلر حافظه (Memory)
266
266
267
-
پروفایلر حافظه در Go میتواند به شما کمک کند تا شناسایی کنید کدام بخشهای کد شما دارای تعداد زیادی تخصیصات حافظه در هپ (heap) هستند و همچنین چند تا از این تخصیصات در آخرین جمعآوری زباله (garbage collection) هنوز در دسترس بودند. به همین دلیل، پروفایل تولید شده توسط پروفایلر حافظه معمولاً بهعنوان پروفایل هپ نیز شناخته میشود.
267
+
پروفایلر حافظه در Go میتواند به شما کمک کند تا شناسایی کنید کدام بخشهای کد شما دارای تعداد زیادی تخصیصات حافظه در هیپ (heap) هستند و همچنین چند تا از این تخصیصات در آخرین جمعآوری زباله (garbage collection) هنوز در دسترس بودند. به همین دلیل، پروفایل تولید شده توسط پروفایلر حافظه معمولاً بهعنوان پروفایل هیپ نیز شناخته میشود.
268
268
269
-
مدیریت حافظه هپ معمولاً مسئول حدود 20-30% از زمان CPU مصرفی توسط فرآیندهای Go است. علاوه بر این، حذف تخصیصات هپ میتواند تأثیرات ثانویهای داشته باشد که بخشهای دیگر کد شما را بهدلیل کاهش مقدار هدر رفت کش (cache thrashing) که در هنگام اسکن هپ توسط جمعآورنده زباله (garbage collector) رخ میدهد، سریعتر میکند. به این معنی که بهینهسازی تخصیصهای حافظه میتواند معمولاً بازگشت بهتری نسبت به بهینهسازی مسیرهای کد وابسته به CPU در برنامه شما داشته باشد.
269
+
مدیریت حافظه هیپ معمولاً مسئول حدود 20-30% از زمان CPU مصرفی توسط فرآیندهای Go است. علاوه بر این، حذف تخصیصات هیپ میتواند تأثیرات ثانویهای داشته باشد که بخشهای دیگر کد شما را بهدلیل کاهش مقدار هدر رفت کش (cache thrashing) که در هنگام اسکن هیپ توسط جمعآورنده زباله (garbage collector) رخ میدهد، سریعتر میکند. به این معنی که بهینهسازی تخصیصهای حافظه میتواند معمولاً بازگشت بهتری نسبت به بهینهسازی مسیرهای کد وابسته به CPU در برنامه شما داشته باشد.
270
270
271
-
⚠️ پروفایلر حافظه تخصیصات استک را نشان نمیدهد زیرا اینها بهطور کلی بسیار ارزانتر از تخصیصات هپ هستند. برای اطلاعات بیشتر به بخش جمعآورنده زباله مراجعه کنید.
271
+
⚠️ پروفایلر حافظه تخصیصات استک را نشان نمیدهد زیرا اینها بهطور کلی بسیار ارزانتر از تخصیصات هیپ هستند. برای اطلاعات بیشتر به بخش جمعآورنده زباله مراجعه کنید.
272
272
273
273
شما میتوانید پروفایلر حافظه را از طریق API های مختلف کنترل کنید:
0 commit comments