PPROF เป็นเครื่องมือสำหรับการสร้างภาพและการวิเคราะห์ข้อมูลการทำโปรไฟล์
PPROF อ่านชุดตัวอย่างโปรไฟล์ในรูปแบบ profile.proto และสร้างรายงานเพื่อแสดงภาพและช่วยวิเคราะห์ข้อมูล มันสามารถสร้างทั้งรายงานข้อความและกราฟิก (ผ่านการใช้แพ็คเกจการสร้างภาพ DOT)
profile.proto เป็นบัฟเฟอร์โปรโตคอลที่อธิบายชุดของ callstacks และข้อมูลสัญลักษณ์ การใช้งานทั่วไปคือการเป็นตัวแทนชุดของ callstacks ตัวอย่างจากการทำโปรไฟล์ทางสถิติ รูปแบบอธิบายไว้ในไฟล์ proto/profile.proto สำหรับรายละเอียดเกี่ยวกับบัฟเฟอร์โปรโตคอลโปรดดู https://developers.google.com/protocol-buffers
โปรไฟล์สามารถอ่านได้จากไฟล์ท้องถิ่นหรือมากกว่า HTTP โปรไฟล์หลายชนิดของประเภทเดียวกันสามารถรวมหรือเปรียบเทียบได้
หากตัวอย่างโปรไฟล์มีที่อยู่ของเครื่อง PPROF สามารถเป็นสัญลักษณ์ของพวกเขาผ่านการใช้เครื่องมือ binutils ดั้งเดิม (Addr2line และ NM)
นี่ไม่ใช่ผลิตภัณฑ์ของ Google อย่างเป็นทางการ
ข้อกำหนดเบื้องต้น:
Go Development Kit ของเวอร์ชันที่รองรับ ทำตามคำแนะนำเหล่านี้เพื่อเตรียมสภาพแวดล้อม
graphviz: http://www.graphviz.org/ เป็นทางเลือกใช้เพื่อสร้างการสร้างภาพกราฟิกของโปรไฟล์
เพื่อสร้างและติดตั้ง:
go install github.com/google/pprof@latest
ไบนารีจะติดตั้ง $GOPATH/bin
( $HOME/go/bin
โดยค่าเริ่มต้น)
PPROF สามารถอ่านโปรไฟล์จากไฟล์หรือโดยตรงจากเซิร์ฟเวอร์ผ่าน HTTP ระบุอินพุตโปรไฟล์ในบรรทัดคำสั่งและใช้ตัวเลือกเพื่อระบุวิธีการจัดรูปแบบรายงาน
% pprof -top [main_binary] profile.pb.gz Where main_binary: Local path to the main program binary, to enable symbolization profile.pb.gz: Local path to the profile in a compressed protobuf, or URL to the http service that serves a profile.
pprof -web [main_binary] profile.pb.gz
หากไม่มีการระบุตัวเลือกการจัดรูปแบบเอาต์พุต PPROF จะทำงานในโหมดอินเทอร์แอคทีฟซึ่งจะอ่านโปรไฟล์และยอมรับคำสั่งแบบโต้ตอบสำหรับการสร้างภาพและการปรับแต่งโปรไฟล์
pprof [main_binary] profile.pb.gz This will open a simple shell that takes pprof commands to generate reports. Type 'help' for available commands/options.
หากระบุสถานะ -http
FLAG PPROF จะเริ่มเว็บเซิร์ฟเวอร์ที่โฮสต์ที่ระบุ: พอร์ตที่ให้อินเทอร์เฟซบนเว็บแบบโต้ตอบกับ PPROF โฮสต์เป็นตัวเลือกและเป็น "localhost" โดยค่าเริ่มต้น พอร์ตเป็นทางเลือกและเป็นพอร์ตที่มีอยู่แบบสุ่มโดยค่าเริ่มต้น -http=":"
เริ่มเซิร์ฟเวอร์ในเครื่องที่พอร์ตสุ่ม
pprof -http=[host]:[port] [main_binary] profile.pb.gz
คำสั่งก่อนหน้านี้ควรเปิดเว็บเบราว์เซอร์ของคุณโดยอัตโนมัติที่หน้าขวา ถ้าไม่คุณสามารถเยี่ยมชมพอร์ตที่ระบุในเว็บเบราว์เซอร์ของคุณด้วยตนเอง
PPROF สามารถอ่านไฟล์ perf.data
ที่สร้างโดยเครื่องมือ Linux Perf โดยใช้โปรแกรม perf_to_profile
จากแพ็คเกจ perf_data_converter
ในการดูการถอดชิ้นส่วนของโปรไฟล์ที่รวบรวมจากโปรแกรม GO ที่รวบรวมเป็น Windows Executables ต้องสร้างการดำเนินการด้วย go build -buildmode=exe
ต้องติดตั้ง LLVM หรือ GCC ดังนั้นเครื่องมือที่จำเป็นเช่น addr2line
และ nm
จึงพร้อมใช้งานสำหรับ pprof
ดู Doc/Readme.md สำหรับเอกสารผู้ใช้รายละเอียดเพิ่มเติม
ดูการสนับสนุน. MD สำหรับเอกสารประกอบการบริจาค
ดู proto/readme.md สำหรับคำอธิบายของรูปแบบ profile.proto