เครื่องมือนี้เป็นงานที่กำลังดำเนินอยู่ ยังไม่พร้อมการผลิตอย่างสมบูรณ์ แต่คุณสามารถลองใช้งานได้
Perfuguard เป็นเครื่องวิเคราะห์แบบคงที่โดยเน้นประสิทธิภาพ
รองรับสองโหมดรัน:
perfguard lint พบปัญหาที่อาจเกิดขึ้นได้ทำงานเช่นการวิเคราะห์แบบคงที่แบบดั้งเดิมperfguard optimize ใช้โปรไฟล์ CPU เพื่อปรับปรุงความแม่นยำในการวิเคราะห์คุณสมบัติคีย์ perfguard:
perfguard optimize--fix (QuickFixes)(*) ไม่พยายามโหลดเป้าหมายการวิเคราะห์ลงในหน่วยความจำทั้งหมดในครั้งเดียว
นี่คือตัวอย่างของสิ่งที่สามารถทำเพื่อคุณ:
ติดตั้ง Binary perfguard ภายใต้ $(go env GOPATH)/bin :
$ go install -v github.com/quasilyte/go-perfguard/cmd/perfguard@latestขอแนะนำให้คุณรวบรวมโปรไฟล์ CPU ในเวิร์กโฟลว์ที่สมจริง
สำหรับแอพ CLI ที่มีอายุสั้นอาจเป็นการวิ่งเต็ม สำหรับแอพที่มีอายุการใช้งานยาวนานคุณอาจต้องการเปิดการทำโปรไฟล์เป็นเวลาหนึ่งนาทีหรือมากกว่านั้นบันทึกไว้ในไฟล์
โปรไฟล์ที่ได้จากการวัดผลไม่ได้เป็นตัวแทนและอาจนำไปสู่ผลลัพธ์ที่ไม่ดี
จุดร้อนในโปรไฟล์อาจปรากฏในสามสถานที่หลัก:
การเพิ่มประสิทธิภาพรหัสของคุณเองนั้นตรงไปตรงมา เรียกใช้ Perfguard บนรากของโครงการของคุณ:
$ perfguard optimize --heatmap cpu.out ./... สิ่งนี้จะแนะนำให้แก้ไขหมวดหมู่ (2) เท่านั้น
เพื่อเพิ่มประสิทธิภาพรหัสจาก (3) เรามีหลายทางเลือก
ตัวเลือกแรกที่ดีกว่า คุณสามารถใช้โปรไฟล์ CPU เดียวกันเพื่อเพิ่มประสิทธิภาพห้องสมุด เรียกใช้ perfguard บนรูทซอร์สโค้ดของไลบรารีเช่นเดียวกับที่คุณทำกับแอปพลิเคชันของคุณ
ตัวเลือกที่สองสามารถทำงานได้สำหรับกรณีเมื่อคุณต้องการปรับใช้ไบนารีที่ดีที่สุดในขณะที่ไม่มีวิธีแก้ไขการพึ่งพาโดยใช้ตัวเลือกแรก ทำตามขั้นตอนเหล่านี้:
# Make dependencies easily available for perfguard.
$ go mod vendor
# Run the analysis over the vendor.
# We use --fix argument to immediately apply the suggested changes.
$ perfguard optimize --heatmap cpu.out --fix ./vendor/...
# Build the optimized binary.
$ go build -o bin/app ./cmd/myapp จากนั้นคุณสามารถเปลี่ยนการเปลี่ยนแปลงไปยัง ./vendor หรือลบออกหากคุณไม่ได้ใช้การขาย