วิธีแสดงภาพประสิทธิภาพของแอปพลิเคชันของคุณด้วยกราฟเปลวไฟ SVG

เผยแพร่แล้ว: 2023-02-21

กราฟเปลวไฟ SVG เป็นวิธีที่ยอดเยี่ยมในการแสดงภาพประสิทธิภาพของแอปพลิเคชันของคุณ ด้วยการแสดงเวลาที่ใช้ในแต่ละฟังก์ชัน คุณสามารถระบุพื้นที่ของโค้ดของคุณที่ใช้เวลามากเกินไปได้อย่างรวดเร็ว ในการแสดงกราฟเปลวไฟ SVG คุณจะต้องใช้เครื่องมือที่สามารถสร้างกราฟได้ มีเครื่องมือโอเพ่นซอร์สมากมาย เช่น flamegraph.io เมื่อคุณสร้างกราฟเปลวไฟแล้ว คุณสามารถฝังลงในเว็บไซต์หรือบล็อกของคุณโดยใช้แท็ก คุณยังสามารถใช้เครื่องมือเช่น Google ชีตเพื่อแสดงกราฟเปลวไฟของคุณ เพียงสร้างสเปรดชีตใหม่ เลือก “แทรก > รูปภาพ” แล้ววาง URL ของกราฟเปลวไฟของคุณ

คุณเรียกใช้กราฟเปลวไฟได้อย่างไร?

คุณเรียกใช้กราฟเปลวไฟได้อย่างไร?
ภาพโดย: badawi.io

ในการเรียกใช้กราฟเปลวไฟ คุณต้องติดตั้งบางอย่างในคอมพิวเตอร์ของคุณ สิ่งแรกที่คุณต้องการคือเบราว์เซอร์ Google Chrome ถัดไป คุณต้องติดตั้งส่วนขยาย Flame Graph เมื่อคุณติดตั้งทั้งสองอย่างนี้แล้ว คุณต้องเปิดเบราว์เซอร์ Google Chrome และไปที่ หน้าส่วนขยาย Flame Graph จากนั้นคุณจะต้องคลิกที่ปุ่ม "สร้างกราฟเปลวไฟใหม่" นี่จะเป็นการเปิดแท็บใหม่ที่คุณจะต้องป้อน URL ของเว็บไซต์ที่คุณต้องการสร้างกราฟเปลวไฟ เมื่อคุณป้อน URL แล้ว คุณจะต้องคลิกที่ปุ่ม "สร้างกราฟเปลวไฟ" การดำเนินการนี้จะใช้เวลาสักครู่เพื่อสร้างกราฟเปลวไฟ เมื่อเสร็จแล้วคุณจะสามารถดูผลลัพธ์ได้

กราฟเปลวไฟแสดงการติดตามคำขอแบบกระจายและสรุปการเรียกใช้บริการแต่ละครั้งที่เกิดขึ้นระหว่างการดำเนินการของคำขอ กราฟ Flame ของการติดตามแบบกระจายแสดงข้อมูลเวลาแฝงและข้อผิดพลาดเพื่อช่วยนักพัฒนาในการระบุปัญหาคอขวดในแอปพลิเคชันของตน บทความนี้ให้คำอธิบายเกี่ยวกับวิธีตีความกราฟเปลวไฟรวมถึงตัวอย่าง ตลอดจนวิธีอื่นๆ สำหรับการติดตามร่องรอยแบบกระจาย แกน Y แสดงความลึกของ call stack (จำนวนการโทร) เมื่อคุณคลิกที่ช่วงบนกราฟเปลวไฟ คุณจะเห็นข้อมูลสรุปของระยะเวลาและข้อผิดพลาดที่เกี่ยวข้องกับการโทร คุณสามารถค้นหาเมตริก บันทึก ข้อมูลประสิทธิภาพเครือข่าย ฮอตสปอตโค้ด และข้อมูลเชิงบริบทอื่นๆ โดยคลิกที่แท็บด้านล่างกราฟเปลวไฟ แผนภาพเกลียวเกิดจากวงกลมที่ล้อมรอบด้วยชุดของวงแหวน กราฟเปลวไฟสามารถใช้เพื่อแสดงภาพวิธีการและเส้นทางโค้ดที่ใช้ในการดำเนินการตามคำขอจากผู้สร้างโปรไฟล์ เครื่องมือตรวจสอบประสิทธิภาพแอปพลิเคชัน Datadog และการติดตามการกระจายช่วยให้คุณสามารถติดตามเส้นทางของคำขอทั้งหมดในทุกบริการ

Flame Graphs ช่วยให้นักพัฒนาเห็นปัญหาด้านประสิทธิภาพได้อย่างรวดเร็วและง่ายดาย

นักพัฒนาสามารถใช้กราฟเปลวไฟเพื่อแสดงภาพประสิทธิภาพของแอพพลิเคชั่นแบบกระจายในเวลาไม่กี่วินาที กราฟ Flame สามารถช่วยนักพัฒนาในการระบุและแก้ไขปัญหาด้านประสิทธิภาพโดยการ แสดงกราฟิก ของการติดตามคำขอและเน้นจุดที่แอปพลิเคชันประสบปัญหา

คุณค้นหา Flamegraph อย่างไร?

มีหลายวิธีในการค้นหาบนเฟลมกราฟ วิธีหนึ่งคือใช้ช่องค้นหาที่อยู่ด้านขวาบนของหน้าจอ ช่องค้นหานี้ให้คุณพิมพ์คำหลักที่จะใช้ในการค้นหาเฟลมกราฟ อีกวิธีในการค้นหาบนเฟลมกราฟคือการใช้ฟังก์ชันเรียกดู ฟังก์ชันนี้จะอยู่ที่ด้านซ้ายมือของหน้าจอ ฟังก์ชั่นนี้ช่วยให้คุณเรียกดูเฟลมกราฟประเภทต่างๆ

ด้วยการกำเนิดของกราฟเปลวไฟ ตอนนี้การค้นหาพวกมันจึงง่ายขึ้น มีการเขียนรหัสเส้นทางภายใต้กรอบ TCP_send() ขนาดใหญ่ทางด้านขวา หากคุณคลิกที่กรอบใดกรอบหนึ่งที่ไฮไลต์ไว้ คุณจะเห็นว่าทำไมสิ่งนี้จึงเกิดขึ้น Tcp_Send มีอยู่ใน 59.1% ของตัวอย่างที่ทดสอบ คำที่น่าสนใจอื่นๆ ที่ควรค้นหา ได้แก่ re?cv, spin, copy และ x

ทำไมจึงเรียกว่ากราฟเปลวไฟ?

เมื่อสร้างการแสดงภาพ Neelakanth และ Roch ใช้สีแบบสุ่มทั้งหมด CPU ร้อน (ไม่ว่าง) ซึ่งอธิบายได้ว่าทำไมฉันถึงเลือกเฉพาะสีโทนร้อนก่อน เนื่องจากมันคล้ายกับเปลวไฟ กราฟเปลวไฟจึงเป็นที่นิยมอย่างรวดเร็ว

อันตรายจากเปลวไฟ

เหตุการณ์ที่ร้อนแรงเป็นวิธีที่สนุกสนานในการปลดปล่อยความคับข้องใจและเริ่มต้นการสนทนาที่มีชีวิตชีวา พวกเขายังสามารถนำไปสู่การพังทลายของความสัมพันธ์และทำให้ผู้คนแตกสลาย
วิธีจัดการกับเปลวไฟที่ดีที่สุดคือการเพิกเฉยต่อมัน บางคนอาจโพสต์เปลวไฟ คุณควรจะเป็นคนที่เพิกเฉยต่อมัน ไม่จำเป็นต้องตอบสนอง ไม่คุ้มกับพลังงานที่เสียไป
เปลวไฟเป็นวิธีที่สนุกในการสื่อสาร แต่ก็อาจเป็นอันตรายได้ในบางกรณีหากใช้อย่างไม่ถูกต้อง คุณไม่ต้องกลัวไฟ คุณควรหลีกเลี่ยงสิ่งเหล่านี้และสงบสติอารมณ์

ใครเป็นผู้คิดค้น Flamegraphs?

กราฟเปลวไฟกลายเป็นเครื่องมือสำคัญสำหรับการวิเคราะห์ประสิทธิภาพในหลายภาษา รวมถึงใน Netflix และอุตสาหกรรมอื่นๆ Brendan Gregg ผู้เขียนของพวกเขาได้สร้าง Flame Graph ซึ่งตีพิมพ์ใน Communications of the ACM ฉบับเดือนมิถุนายน 2559


โปรแกรมดูกราฟเปลวไฟ

โปรแกรมดูกราฟเปลวไฟ เป็นซอฟต์แวร์ประเภทหนึ่งที่ช่วยให้ผู้ใช้เห็นภาพข้อมูลในรูปแบบของกราฟ ซอฟต์แวร์นี้มักใช้เพื่อแก้ไขปัญหาเกี่ยวกับคอมพิวเตอร์หรืออุปกรณ์อื่นๆ

คุณสามารถใช้ speedscope เพื่อดูโปรไฟล์ประสิทธิภาพขนาดใหญ่ในลักษณะทางเว็บ FlameGraphs โดย Brendan Gregg ได้รับแรงบันดาลใจจากแผงประสิทธิภาพของเครื่องมือสำหรับนักพัฒนา Chrome ข้อมูลจากระบบจะไม่ถูกส่งต่อไปยังเซิร์ฟเวอร์ใด ๆ และจะทำงานในเบราว์เซอร์โดยสมบูรณ์ Chrome และ Firefox ควรใช้งานได้กับทุกแพลตฟอร์ม (แม้ว่าฉันจะทดสอบเฉพาะ Mac เท่านั้น) ในมุมมองแบบ Heavy ด้านซ้าย สแต็กที่เหมือนกันจะถูกจัดกลุ่มเข้าด้วยกันโดยไม่คำนึงว่าสแต็กเหล่านั้นได้รับการบันทึกตามลำดับหรือไม่ สแต็คของพาเรนต์แต่ละอันจะถูกจัดเรียงเพื่อให้สแต็กที่หนักที่สุดอยู่ทางซ้าย ดังนั้นจึงเป็นป้ายกำกับทางซ้ายมือ มุมมองโดยละเอียดของสถานการณ์จะช่วยให้คุณเข้าใจว่าคุณอยู่ที่ไหนในแง่ของจำนวนการเรียกใช้ฟังก์ชันที่คุณมีในสถานการณ์ที่กำหนด

Rudro Samanta ใช้ speedscope เพื่อแสดงภาพโปรไฟล์แอปพลิเคชัน iOS ที่บันทึกด้วย Xcode Jest ใช้เพื่อเขียนกรณีทดสอบ, Travis CI ใช้เพื่อผสานรวมโค้ดอย่างต่อเนื่อง, Coveralls ใช้สำหรับรายงานความครอบคลุมการทดสอบ, Parcel ใช้เพื่อแปลงซอร์สโค้ด และสวยกว่าใช้สำหรับจัดรูปแบบโค้ดโดยอัตโนมัติ วิธีหนึ่งในการดำเนินการนี้ให้สำเร็จคือการเพิ่มจำนวนรูปแบบ speedscope ที่สามารถนำเข้าได้ และวิธีหนึ่งในการผสานรวมให้แน่นแฟ้นยิ่งขึ้น ฉันทำงานกับ speedscope มาเก้าเดือนแล้ว และฉันรู้สึกเหมือนได้ปล่อยให้มันหนีไปจากฉัน ในฐานะวิศวกร ฉันจะพยายามสร้างระบบและชุดเครื่องมือที่สามารถบำรุงรักษา เข้าใจได้ และมีประโยชน์เพื่อช่วยเหลือผู้คนในการแก้ปัญหาที่ซับซ้อนทั่วโลก ฉันเชื่อว่าฉันจะอุทิศเวลามากขึ้นให้กับโครงการสร้างสรรค์และความร่วมมือในปีนี้

เฟลมกราฟออนไลน์

กราฟเปลวเป็นการแสดงกราฟิกของข้อมูลการทำโปรไฟล์ โดยทั่วไปจะใช้เพื่อแสดงคุณลักษณะด้านประสิทธิภาพของโปรแกรมซอฟต์แวร์ ความสูงของแต่ละส่วนแสดงถึงระยะเวลาที่ใช้ในโค้ดส่วนนั้นๆ ส่วนจะเรียงลำดับจากซ้ายไปขวาตามเวลาที่เรียก

กราฟเปลวไฟใช้พื้นที่หน้าจออย่างมีประสิทธิภาพโดยนำเสนอข้อมูลจำนวนมากในรูปแบบขนาดเล็ก ซึ่งแตกต่างจากต้นไม้และกราฟ เมื่อคลิกที่นี่ คุณจะได้เรียนรู้วิธีแปลงต้นไม้เป็นกราฟเปลวไฟ รวมถึงคุณสมบัติหลักของกราฟเปลวไฟ Flame Graphs ใช้ใน Google Cloud Profiler เพื่อแสดงข้อมูลการทำโปรไฟล์ เมื่อคุณติดตาม call stack ความกว้างของเฟรมจะลดลงเนื่องจากเวลา CPU ทั้งหมดของผู้ถูกเรียกต้องไม่เกินเวลา CPU ของ callee อื่น รูปร่างเปลวไฟ เกิดจากพฤติกรรมนี้ กราฟเปลวเพลิงปรากฏดังต่อไปนี้หลังจากลบช่องว่างส่วนเกินและกรอบการระบายสีโดยใช้เวลา CPU ของตนเอง แม้ว่า call stack สำหรับ foo1 และ foo2 จะถูกรักษาไว้ แต่ stack ที่ขึ้นต้นด้วย foo2 และลงท้ายด้วย foo1 จะอยู่ถัดจากเฟรม

คุณสร้างกราฟเปลวไฟได้อย่างไร?

หากต้องการสร้างกราฟเปลวไฟ คุณต้องสุ่มตัวอย่างสแต็กเทรซก่อน ตามธรรมเนียมแล้วจะแบ่งออกเป็นสองประเภท: โปรไฟล์ระบบ เช่น Linux perf ซึ่งแสดงพาธโค้ดระบบ (เช่น JVM GC, syscalls, TCP) แต่ไม่ใช่โปรไฟล์ Java มีเครื่องมือสร้างโปรไฟล์ JVM เช่น hprof, lJP และเครื่องมือสร้างโปรไฟล์เชิงพาณิชย์

แผนภูมิเปลวไฟ Vs กราฟเปลวไฟ

มีความแตกต่างที่สำคัญบางประการระหว่าง แผนภูมิเปลวไฟ และกราฟเปลวไฟ โดยทั่วไปแล้ว แผนภูมิเปลวไฟจะแสดงไทม์ไลน์ของเหตุการณ์ ในขณะที่กราฟเปลวไฟจะแสดงสแต็กเทรซ แผนภูมิเปลวไฟมักใช้ในการแก้ไขจุดบกพร่องของปัญหาด้านประสิทธิภาพ ในขณะที่กราฟเปลวไฟมักใช้เพื่อแสดงภาพข้อมูลประสิทธิภาพ แผนภูมิเปลวไฟเป็นวิธีที่ดีในการดูว่าโปรแกรมใช้เวลาไปอย่างไร พวกเขาสามารถแสดงให้คุณเห็นว่าคอขวดอยู่ที่ไหนและโปรแกรมใช้ทรัพยากรอย่างไร กราฟเปลวไฟเป็นวิธีที่ดีในการดูว่าโปรแกรมใช้ทรัพยากรอย่างไร

ในฐานะที่เป็นเทคนิคคร่าวๆ แต่มีประโยชน์ในการพิจารณาว่าโค้ดพาธใดฮอต (เพราะกำลังยุ่งอยู่กับ CPU) การทำโปรไฟล์ในอัตราคงที่จึงให้ผลลัพธ์ที่ดี กราฟ Flame ช่วยให้คุณระบุเส้นทางรหัสด่วนได้อย่างรวดเร็วโดยการสุ่มตัวอย่างสแต็กเทรซ ตัวอย่าง Linux perf (perf_events) และ DTrace ของฉันเป็นทั้งตัวอย่างซอฟต์แวร์ที่คุณสามารถติดตั้งได้ FlameGraph เป็นเครื่องมือ Perl ที่สร้าง SVG แบบอินเทอร์แอกทีฟ และให้คุณดูรายละเอียดได้โดยการลากและวางบนรูปภาพ การแสดงภาพอาจดูเหมือนกับคนอื่นจากผู้สร้างโปรไฟล์ แต่แตกต่างจากพวกเขาในบางประการ เนื่องจากในตอนแรกใช้เพื่อแสดงภาพว่าอะไรร้อนบน CPU จึงเรียกว่ากราฟเปลวไฟ ตรวจสอบส่วนโปรไฟล์ eBPF(8) สำหรับวิธีการรันโอเวอร์เฮดในเคอร์เนล Linux รุ่นใหม่กว่า (ไม่แนะนำโปรไฟล์ eBPF(8))

โปรดดู ส่วน Flame Graphs ในหน้า perf_events ของฉันสำหรับข้อมูลเพิ่มเติมเกี่ยวกับ perf เป็นไปได้ที่จะส่งออกเอาต์พุตแบบพับโดยตรงจากรายงาน perf ของ Linux 4.5 โดยรวมโหมดพับซึ่งเข้าถึงได้โดยใช้ stackcollapse-perf.pl เท่านั้น เส้นใยของเคอร์เนล (-a) และผู้ใช้ (-d) คั่นด้วยสแต็กผู้ใช้และเคอร์เนล (-f) ในตัวอย่างนี้ที่ 99 เฮิรตซ์ (-F 99) และมีเวลาจำกัด 60 วินาทีสำหรับตัวอย่าง สามารถสร้างกราฟเปลวไฟได้โดยใช้ SystemTap v1.7 ใน Fedora 16 นอกจากนี้ยังสามารถใช้ตัวจับเวลาเพื่อสุ่มตัวอย่างการติดตามสแต็ก โพรบโปรไฟล์นี้ทำงานที่อัตรานาฬิการะบบ (CONFIG_HZ) SystemTap สามารถใช้คุณลักษณะการรวม systemTap เพื่อรวมในเคอร์เนลและส่งรายงาน (รายละเอียดน้อยกว่า) ไปยังผู้ใช้

กราฟถูกสร้างขึ้นโดยใช้ KVM (โฮสต์ Ubuntu) (32 บิต) บนแขก Fedora 16 (พร้อม CPU เสมือนหนึ่งตัว) บนโลหะเปล่า เส้นทางของรหัสและอัตราส่วนตัวอย่างบางส่วนจะแตกต่างกันมาก คุณสามารถคลิกเหนือองค์ประกอบต่างๆ ในข้อมูลการทำโปรไฟล์เพื่อดูเปอร์เซ็นต์ (แต่ไม่สามารถคลิกเพื่อซูมได้ เนื่องจากเป็นเวอร์ชันใหม่) แต่ไม่สามารถซูมเข้าได้ กราฟเป็นเครื่องมือที่ยอดเยี่ยมสำหรับการเรียนรู้เพิ่มเติมเกี่ยวกับระบบภายในของ Linux บนโฮสต์ไฮเปอร์ไวเซอร์เคอร์เนล illumos ทั้งผู้ใช้และเคอร์เนลสแต็กสามารถเห็นได้ในตัวอย่างนี้ นอกจากนี้ยังมีเวอร์ชัน SVG และ PNG แบบสแตนด์อโลนอีกด้วย เพื่อสังเกตการจัดสรรเวลาเคอร์เนลเพื่อสร้างกระบวนการอายุสั้น ฉันทำเวิร์กโหลดของกราฟเปลวไฟนี้

โดยทั่วไปจะใช้กราฟเปลวไฟเพื่อระบุโหลดการขัดจังหวะเคอร์เนลโดยการแสดงเส้นขน NUMA Balancing ใน Ubuntu รุ่น 1716 ใช้มากกว่าครึ่งหนึ่งของรอบการทำงานของ CPU เพื่อปรับสมดุลหน่วยความจำระหว่างโหนด ส่งผลให้ประสิทธิภาพช้าลง การเขียนกราฟเปลวไฟใหม่ใน D3 เป็นสิ่งสำคัญสำหรับการรักษาคำสั่งผสานให้คงที่โดยไม่ต้องสร้างกราฟเปลวไฟใหม่ ในการพูดคุย JavaOne 2016 ของฉัน การวิเคราะห์ประสิทธิภาพ Java บน Linux ด้วย Flame Graphs ฉันครอบคลุมเทคนิคล่าสุดสำหรับการสร้าง กราฟเปลวไฟแบบโหมด ผสมโดยใช้ Linux perf JDK8u60 มีคุณสมบัติที่เรียกว่า /PreservePointerFrame ที่ให้คุณสร้างกราฟเพอร์เฟคและเฟลม JDK-8068945 ถูกเพิ่มไปยังไลบรารี JDK เป็นแพตช์ด่วนสำหรับการทำโปรไฟล์สแต็ก (ตัวชี้เฟรม) เมื่อใช้การลงทะเบียน RBP เป็นตัวชี้เฟรมในโค้ดที่คอมไพล์สำหรับ x64 จะถือว่าเป็นตัวชี้เฟรมที่เหมาะสม

เมื่อรัน DTrace เป็นเมธอด Jstack จะสามารถติดตามสแต็กระดับผู้ใช้ เช่นเดียวกับเมธอดและคลาสของ Java สำหรับโปรแกรม Java จะใช้ Stackcollapse.pl และ flamegraph.pl เพื่อสร้าง กราฟเปลวไฟของ CPU JVM บางเวอร์ชันไม่รองรับ ustack helper ซึ่งมีปัญหาหลายประการ ใช้งานได้กับสแต็กเทรซบวกค่าผสม ไม่ใช่แค่สแต็กเทรซที่มีจำนวน CPU ปัญหาแรกคือ Jstack() อาจไม่สามารถเดินสแต็คได้อย่างถูกต้องเนื่องจากบั๊ก JDK-6260864 ซึ่งยื่นในปี 2548 และยังไม่ได้รับการแก้ไขในปี 2557 บั๊กนี้ทำให้ตัวอย่างสแต็คส่วนใหญ่ในปริมาณงานการผลิตของฉันเปลี่ยนไป หยุดพัก. คุณสามารถรับข้อมูลเชิงลึกเกี่ยวกับการจัดสรรหน่วยความจำของอุปกรณ์, IO ของอุปกรณ์, รูปแบบ syscall, เหตุการณ์นอก CPU และการเรียกใช้ฟังก์ชันเฉพาะ หากมีการใช้งานเหล่านี้ สามารถรับสแต็กเทรซได้ด้วยค่าที่เกี่ยวข้อง: จำนวน ไบต์ หรือเวลาแฝง สามารถดูกราฟเปลวไฟได้ที่หน้ากราฟเปลวไฟ

เฟลมกราฟ Java

กราฟเปลวไฟเป็นการแสดงข้อมูลประเภทหนึ่งที่ใช้เพื่อแสดงประสิทธิภาพของโปรแกรมซอฟต์แวร์ เป็นกราฟที่แสดงระยะเวลาที่โปรแกรมใช้ในแต่ละฟังก์ชัน ความสูงของแท่งแสดงถึงระยะเวลาที่โปรแกรมใช้ในฟังก์ชันนั้น ความกว้างของแถบแสดงระยะเวลาที่โปรแกรมใช้ในฟังก์ชันนั้นเมื่อเทียบกับฟังก์ชันอื่นๆ

เมื่อเร็ว ๆ นี้ Flame Graphs กลายเป็นวิธีใหม่ที่ได้รับความนิยมในการแสดงภาพการใช้งาน CPU ใน Java สามารถสร้างได้โดยใช้ Java profiler ที่มีน้ำหนักเบาของ Google (code.google.com) และซอฟต์แวร์กราฟเปลวไฟของฉัน (github) เป็น สิ่งที่ดีที่ Flame Graph จะไม่ใช่ฟีเจอร์ที่แยกจาก Java Profilers ในอนาคต ในโพสต์บล็อกนี้ เราจะดูวิธีการที่ใช้ JVMTI แบบ Java เท่านั้น ซึ่งในขณะที่ใช้งานได้ก็มีข้อจำกัดบางประการ Jeremy Manson ได้สร้าง Java profiler ที่มีน้ำหนักเบาซึ่งสามารถใช้เพื่อสุ่มตัวอย่าง CPU รายงานตัวอย่างนี้ถูกสร้างขึ้นเมื่อ java เริ่มทำงานจนกระทั่งออก โดยมีไฟล์ trace.txt ต่อท้าย ในการเรียกใช้โปรแกรมมีค่าใช้จ่ายเล็กน้อย

สำหรับโปรแกรมของฉัน มันเล็กน้อย (อัตราการร้องขอเพิ่มขึ้นเพียง 1% และการใช้ CPU เพิ่มขึ้น 7%) หากควรลดอัตราการสุ่มตัวอย่าง โปรดดูส่วนถัดไป เอาต์พุตของ โปรแกรม flamegraph.pl สามารถปรับแต่งได้ด้วยตัวเลือกที่หลากหลาย (รายการ -h) รวมถึงชื่อเรื่อง เครื่องมือทำโปรไฟล์ที่ซื่อสัตย์ของ Richard Warburton ซึ่งใช้เทคนิคการทำโปรไฟล์แบบเดียวกันก็มีประโยชน์เช่นกัน เป็นไปได้ว่าฉันจะลดอัตราการสุ่มตัวอย่างจาก 100 เฮิรตซ์เป็น 50 เฮิรตซ์หรือต่ำกว่า หากฉันตั้งใจจะรวบรวมข้อมูลจำนวนมากในระยะเวลานาน