نمودار شعله

برگه Flame Chart یک نمودار تماس معکوس را ارائه می دهد که پشته های تماس یکسان را جمع می کند. یعنی روش‌ها یا عملکردهای یکسانی که توالی تماس‌گیرندگان یکسانی دارند جمع‌آوری می‌شوند و به‌عنوان یک نوار طولانی‌تر در نمودار شعله نمایش داده می‌شوند (به‌جای نمایش آن‌ها به‌عنوان چندین نوار کوتاه‌تر، همانطور که در نمودار تماس نشان داده شده است). این باعث می‌شود که ببینید کدام روش‌ها یا عملکردها بیشترین زمان را مصرف می‌کنند. با این حال، این همچنین به این معنی است که محور افقی یک خط زمانی را نشان نمی دهد. در عوض، مدت زمان نسبی را برای اجرای هر متد یا تابع نشان می دهد.

برای کمک به تشریح این مفهوم، نمودار فراخوانی را در شکل 1 در نظر بگیرید. توجه داشته باشید که روش D چندین تماس با B (B 1 ، B 2 و B 3 ) برقرار می کند و برخی از آن فراخوانی ها به B، با C (C 1) تماس می گیرند. و ج 3 ).

شکل 1. نمودار تماس با چندین روش فراخوانی که توالی مشترکی از تماس گیرندگان را به اشتراک می گذارند.

از آنجایی که B 1 ، B 2 و B 3 دنباله تماس گیرندگان یکسانی دارند (A → D → B )، همانطور که در شکل 2 نشان داده شده است، تجمیع می شوند. (A → D → B → C); توجه داشته باشید که C 2 گنجانده نشده است زیرا دارای توالی متفاوتی از تماس گیرندگان است (A → D → C).

شکل 2. جمع آوری روش های یکسان که پشته تماس یکسانی دارند.

تماس‌های انبوه برای ایجاد نمودار شعله استفاده می‌شوند، همانطور که در شکل 3 نشان داده شده است. توجه داشته باشید که برای هر فراخوانی در نمودار شعله، تماس‌هایی که بیشترین زمان CPU را مصرف می‌کنند، ابتدا ظاهر می‌شوند.

شکل 3. نمایش نمودار شعله از نمودار تماس نشان داده شده در شکل 5.