Perfview เป็นเครื่องมือวิเคราะห์ประสิทธิภาพฟรีที่ช่วยแยก CPU และปัญหาประสิทธิภาพที่เกี่ยวข้องกับหน่วยความจำ มันเป็นเครื่องมือ Windows แต่ก็มีการสนับสนุนบางอย่างสำหรับการวิเคราะห์ข้อมูลที่รวบรวมบนเครื่อง Linux มันใช้งานได้สำหรับสถานการณ์ที่หลากหลาย แต่มีคุณสมบัติพิเศษมากมายสำหรับการตรวจสอบปัญหาประสิทธิภาพในรหัสที่เขียนขึ้นสำหรับ. NET Runtime
หากคุณไม่คุ้นเคยกับ Perfview มีบทเรียนวิดีโอ Perfview นอกจากนี้บล็อกของ Vance Morrison ให้ภาพรวมและเริ่มต้นข้อมูล
โปรดดูหน้าดาวน์โหลด perfview สำหรับลิงค์และคำแนะนำสำหรับการดาวน์โหลดเวอร์ชันปัจจุบันของ Perfview
Perfview ต้องการ. NET Framework 4.7.2 หรือใหม่กว่าซึ่งมีให้บริการอย่างกว้างขวางสำหรับ Windows รุ่นที่รองรับทั้งหมด
Perfview สร้างขึ้นบนห้องสมุดที่เรียกว่า Microsoft.Diagnostics.tracing.traceEvent ที่รู้วิธีการรวบรวมและแยกวิเคราะห์เหตุการณ์สำหรับ Windows (ETW) และข้อมูล EventPipe (.NET Core Trace) ดังนั้นหากมีข้อมูลใด ๆ ที่ Perfview รวบรวมและกระบวนการที่คุณต้องการจัดการกับตัวเองโดยทางโปรแกรมคุณอาจสนใจในเอกสารประกอบห้องสมุด Traceevent
ดูเอกสารสถานการณ์เพื่อพิจารณาว่าตัวเลือกที่ดีที่สุดสำหรับสิ่งที่คุณพยายามทำ
คู่มือผู้ใช้ Perfview เป็นส่วนหนึ่งของแอปพลิเคชันเอง นอกจากนี้คุณสามารถคลิกลิงก์คู่มือผู้ใช้เพื่อดูไฟล์ต้นฉบับ GitHub HTML ที่แสดงในเบราว์เซอร์ของคุณ นอกจากนี้คุณยังสามารถดาวน์โหลด Perfview โดยใช้คำแนะนำด้านบนและเลือกรายการเมนู Help -> คู่มือผู้ใช้
เมื่อคุณมีคำถามเกี่ยวกับ Perfview ปฏิกิริยาแรกของคุณควรค้นหาคู่มือผู้ใช้ (ช่วยเหลือ -> คู่มือผู้ใช้) และดูว่าคุณสามารถค้นหาคำตอบได้หรือไม่ หากไม่ได้ผลคุณสามารถถามคำถามโดยการสร้างปัญหา Perfview ใหม่ ระบุคำถามของคุณอย่างกระชับในชื่อเรื่องและหากจำเป็นให้รายละเอียดในเนื้อหาของปัญหามีแท็กปัญหาที่เรียกว่า 'คำถาม' ที่คุณควรใช้เช่นกันที่ทำเครื่องหมายปัญหาของคุณเป็นคำถามมากกว่ารายงานข้อผิดพลาดบางอย่าง หากคำถามนั้นมีความเฉพาะเจาะจงสำหรับการติดตามเฉพาะ (*.etl.zip ไฟล์) คุณสามารถลากไฟล์นั้นไปยังปัญหาและจะดาวน์โหลด สิ่งนี้ช่วยให้ผู้ที่เฝ้าดูปัญหาในการทำซ้ำสภาพแวดล้อมของคุณและให้คำตอบที่มีรายละเอียดและมีประโยชน์มากขึ้น
โปรดทราบว่าเมื่อคุณได้รับคำตอบจากคำถามของคุณหากปัญหาเป็นเรื่องปกติคุณควรพิจารณาอัปเดตเอกสารเพื่อรวมข้อมูลอย่างมาก เอกสารนี้ค่อนข้างมีเพียงไฟล์เดียว https://github.com/microsoft/perfview/blob/main/src/perfview/supportfiles/usersguide.htm คุณจะต้องโคลนพื้นที่เก็บข้อมูลและสร้างคำขอดึง (ดู OpenSourceGitWorkFlow สำหรับคำแนะนำสำหรับการตั้งค่าและสร้างคำขอดึง
การรายงานข้อบกพร่องนั้นทำงานได้ค่อนข้างเหมือนกับการถามคำถาม มีความเป็นไปได้สูงที่คุณจะต้องรวมไฟล์ *.etl.zip ที่จำเป็นในการทำซ้ำปัญหาเช่นเดียวกับขั้นตอนใด ๆ และพฤติกรรมที่ไม่พึงประสงค์
หากคุณต้องการตรวจสอบประสิทธิภาพคุณไม่จำเป็นต้องสร้าง Perfview ด้วยตัวเอง เพียงใช้หนึ่งจากหน้าดาวน์โหลด perfview อย่างไรก็ตามหากคุณต้องการคุณสมบัติใหม่หรือเพียงแค่ต้องการมีส่วนร่วมใน Perfview เพื่อให้ดีขึ้น (ดูปัญหาสำหรับสิ่งที่ผู้คนต้องการ) คุณสามารถทำได้โดยทำตามคำแนะนำที่เหลือเหล่านี้
เครื่องมือเดียวที่คุณต้องสร้าง Perfview คือ Visual Studio 2022 สามารถดาวน์โหลด Visual Studio 2022 Community Edition ได้ฟรี และมีทุกสิ่งที่คุณต้องการเพื่อดึงข้อมูลจาก GitHub สร้างและทดสอบ เราคาดว่าคุณจะดาวน์โหลด Visual Studio 2022 Community Edition หากคุณยังไม่มี Visual Studio 2022
ในการติดตั้ง Visual Studio คุณต้องตรวจสอบให้แน่ใจว่าคุณติดตั้งเวิร์กโหลดและส่วนประกอบต่อไปนี้:
ไฟล์ .vsconfig รวมอยู่ในรูทของที่เก็บที่สามารถใช้ในการติดตั้งส่วนประกอบที่จำเป็น เมื่อเปิดโซลูชันใน Visual Studio มันจะแจ้งให้คุณติดตั้งส่วนประกอบใด ๆ ที่คิดว่าหายไปจากการติดตั้งของคุณ หรือคุณสามารถนำเข้า .vsconfig ในตัวติดตั้ง Visual Studio
หากคุณได้รับข้อผิดพลาดใด ๆ ที่รวบรวมโครงการ ETWCLRCOMPILER อาจเป็นไปได้ว่าคุณไม่ได้ติดตั้ง Windows 10 SDK หรือคุณไม่มี LIBs ที่ติดตั้งแบบสเปกตรัม โปรดดูส่วนการแก้ไขปัญหาสำหรับข้อมูลเพิ่มเติม
ขั้นตอนแรกในการเริ่มต้นใช้งานซอร์สโค้ด Perfview คือการโคลนที่เก็บข้อมูล Perfview GitHub หากคุณคุ้นเคยกับวิธีการสนับสนุน Git, GitHub และ Visual Studio 2022 Git คุณสามารถข้ามส่วนนี้ได้ อย่างไรก็ตามหากไม่ได้ตั้งค่าที่เก็บ GitHub ในท้องถิ่นด้วยเอกสาร Visual Studio 2022 จะนำคุณผ่านพื้นฐานของการทำสิ่งนี้ ทั้งหมดที่ถือว่าคือคุณติดตั้ง Visual Studio 2022
Perfview ได้รับการพัฒนาใน Visual Studio 2022 โดยใช้คุณสมบัติผ่าน C# 7.3
ไฟล์โซลูชันคือ perfview.sln การเปิดไฟล์นี้ใน Visual Studio (หรือดับเบิลคลิกที่ Windows Explorer) และเลือก Build -> Build Solution จะสร้างขึ้น นอกจากนี้คุณยังสามารถสร้างเวอร์ชันที่ไม่ใช่การถอดความได้จากบรรทัดคำสั่งโดยใช้ MSBuild หรือไฟล์ build.cmd ที่ฐานของที่เก็บ การสร้างดังต่อไปนี้การประชุม Visual Visual Studio มาตรฐานและไฟล์ perfview.exe ผลลัพธ์จะอยู่ใน SRC/perfview/bin/ buildtype /perfview.exe คุณต้องใช้เพียงการปรับใช้ exe นี้เพื่อใช้
โซลูชันประกอบด้วยหลายโครงการซึ่งเป็นตัวแทนของ DLLS สนับสนุนและ EXE หลัก ในการเรียกใช้ Perfview ในดีบักเกอร์ คุณต้องตรวจสอบให้แน่ใจว่า 'โครงการเริ่มต้น' ถูกตั้งค่าเป็นโครงการ 'Perfview' เพื่อให้เปิดตัว EXE หลัก หากโครงการ Perfview ใน Solution Explorer (ด้านขวา) ไม่เป็นตัวหนาให้คลิกขวาที่โครงการ Perfview และเลือก 'Set As Startup Project' หลังจากทำสิ่งนี้ 'เริ่มการดีบัก' (F5) ควรทำงาน
คุณจะต้องปรับใช้ 'รีลีส' มากกว่าเวอร์ชัน 'ดีบัก' ของ Perferview ดังนั้นก่อนอื่นให้ตั้งค่าการกำหนดค่าการสร้างของคุณเป็น 'รีลีส' (หน้าต่างข้อความในแถบเครื่องมือด้านบนหรือคลิกขวาที่ไฟล์. sln -> ตัวจัดการการกำหนดค่า -> การกำหนดค่าโซลูชันที่ใช้งานอยู่) Build ถัดไป (Build-> Build Solution (Ctrl-Shift-B)) ผลที่ได้คือใน src perfview bin net462 release ไดเรกทอรีจะมีสิ่งอื่น ๆ ที่ perfview.exe ไฟล์นี้คือทั้งหมดที่คุณต้องปรับใช้ เพียงคัดลอกไปยังที่ที่คุณต้องการปรับใช้แอพ
หนึ่งในสิ่งที่ผิดปกติเกี่ยวกับ Perfview คือมันรวมการสนับสนุน DLLs ไว้ใน EXE ของตัวเองและสิ่งเหล่านี้จะถูกเปิดออกในการเปิดตัวครั้งแรก ซึ่งหมายความว่ามีการพึ่งพาที่ยุ่งยากในการสร้างที่ไม่ปกติ คุณจะเห็นข้อผิดพลาดที่ไม่พบ DLL บางอย่างหากมีปัญหาการสร้างก่อนหน้านี้ในการสร้าง โดยทั่วไปคุณสามารถแก้ไขสิ่งนี้ได้ง่ายๆโดยการสร้างแบบปกติ (ไม่สะอาด) เนื่องจากไฟล์ที่หายไปจะปรากฏจากการรวบรวมล่าสุด หากสิ่งนี้ไม่ได้แก้ไขสิ่งต่าง ๆ ให้ดูว่า DLL กำลังมองหาจริงหรือไม่ (ถ้าเป็นเช่นนั้นการสร้างใหม่ควรแก้ไข) มันสามารถทำให้รู้สึกถึงการลงโครงการทีละรายการและสร้างพวกเขาเป็นรายบุคคลเพื่อดูว่าอันไหนที่ล้มเหลว 'ครั้งแรก'
อีกสิ่งที่ผิดปกติเกี่ยวกับ Perfview คือมันมีกลไกการขยายที่สมบูรณ์พร้อมตัวอย่าง กลไกการขยายนี้เป็นโครงการ 'ทั่วโลก' (เรียกว่าเพราะมันเป็นส่วนขยายระดับโลกที่มีคำสั่งไม่มี 'ขอบเขต' ที่ชัดเจน) และจำเป็นต้องอ้างถึง Perfview เพื่อแก้ไขการอ้างอิงบางส่วน ดังนั้นคุณจะได้รับปัญหา 'ไม่พบ' มากมายในโครงการ 'ทั่วโลก' สิ่งเหล่านี้สามารถเพิกเฉยได้จนกว่าคุณจะได้รับส่วนอื่น ๆ ของงานสร้าง
หนึ่งในค่าคงที่ของ repo คือถ้าคุณใช้ Visual Studio 2022 และคุณเพียงแค่ซิงค์และสร้างไฟล์ perfview.sln มันควรจะ 'ทำงาน' หากสิ่งนั้นไม่ได้เกิดขึ้นและคำแนะนำข้างต้นไม่ได้ช่วยเราต้องแก้ไข repo หรืออัปเดตคำแนะนำข้างต้น ดังนั้นจึงมีเหตุผลที่จะเปิดปัญหา GitHub หากคุณทำเช่นนี้เป้าหมายคือการแก้ไขปัญหาซึ่งหมายความว่าคุณต้องใส่ข้อมูลเพียงพอในปัญหาที่จะทำเช่นนั้น ซึ่งรวมถึงสิ่งที่คุณลองและข้อความแสดงข้อผิดพลาดคืออะไร
คุณยังสามารถสร้าง Perfview จากบรรทัดคำสั่ง (แต่คุณยังต้องติดตั้ง Visual Studio 2022) มันเป็นกระบวนการสองขั้นตอน ก่อนอื่นคุณต้องกู้คืนแพ็คเกจ NUGET ที่จำเป็นทั้งหมดจากนั้นคุณจะสร้างตัวเอง ในการทำเช่นนี้:
หากคุณได้รับข้อผิดพลาด "MSB8036: ไม่พบ Windows SDK เวอร์ชัน 10.0.17763.0" หรือคุณจะได้รับ 'assert.h' ข้อผิดพลาดไม่พบหรือตรงไปตรงมาใด ๆ น่าเสียดายที่ห้องสมุดนี้มีแนวโน้มที่จะไม่ติดตั้งกับ Visual Studio อีกต่อไปเว้นแต่คุณจะขออย่างชัดเจน ในการแก้ไขมันเปิดตัวติดตั้ง Visual Studio ให้แก้ไขการติดตั้งแล้วดูภายใต้การพัฒนาเดสก์ท็อป C ++ และตรวจสอบว่าตัวเลือก Windows SDK 10.0.17763.0 ถูกเลือก ถ้าไม่เลือกและดำเนินการต่อ จากนั้นลองสร้าง Perfview อีกครั้ง
หากคุณได้รับข้อผิดพลาด "MSB8040: จำเป็นต้องใช้ไลบรารีสเปกตรัมสำหรับโครงการนี้" ให้แก้ไขการติดตั้ง Visual Studio ของคุณเพื่อให้แน่ใจว่าคุณมี 'MSVC V143-VS 2022 C ++ X64/X86 Spectre-mitigated Libs (ล่าสุด)
Perfview มีโครงการทดสอบ *จำนวนมากที่มีการทดสอบอัตโนมัติ พวกเขาสามารถเรียกใช้ใน Visual Studio โดยเลือกการทดสอบ -> Run -> รายการเมนูการทดสอบทั้งหมด สำหรับผลลัพธ์ที่ละเอียดที่สุด (และแน่นอนถ้าคุณตั้งใจจะส่งการเปลี่ยนแปลง) คุณต้องเรียกใช้การทดสอบเหล่านี้ด้วยการดีบักบิลด์ของผลิตภัณฑ์ (ดูหน้าต่างข้อความในแถบเครื่องมือด้านบนมันบอกว่า 'ดีบัก' หรือ 'รีลีส') หากการทดสอบล้มเหลวคุณสามารถคลิกขวาที่การทดสอบที่ล้มเหลวและเลือกรายการเมนูบริบท 'ดีบัก' เพื่อเรียกใช้การทดสอบภายใต้ดีบักเกอร์เพื่อหาว่าเกิดอะไรขึ้น
พื้นที่เก็บข้อมูลนี้ใช้ Azure DevOps เพื่อสร้างและทดสอบคำขอดึงโดยอัตโนมัติซึ่งช่วยให้ชุมชนสามารถดูผลลัพธ์การสร้างได้อย่างง่ายดาย การสร้างและสถานะที่สะท้อนให้เห็นที่นี่คือ Azure DevOps สร้างสถานะของสาขา หลัก
การสร้างที่ผลิตโดย Azure DevOps CI นั้นไม่ได้รับการพิจารณาว่าเป็นงานสร้างอย่างเป็นทางการของ Perfview และไม่ได้ลงนามหรือตรวจสอบความปลอดภัยหรือความปลอดภัยเป็นอย่างอื่น การรวมการสร้างนี้จัดทำขึ้นเพื่อความสะดวกสำหรับผู้เข้าร่วมชุมชน แต่ไม่ได้รับการรับรองจาก Microsoft และไม่ถือว่าเป็นช่องทางการวางจำหน่ายอย่างเป็นทางการ แต่อย่างใด สำหรับข้อมูลเกี่ยวกับการสร้างอย่างเป็นทางการโปรดดูหน้า Perfview Download Page
คุณสามารถได้รับคุณค่ามากมายจากฐานซอร์สโค้ดเพียงแค่สามารถสร้างรหัสด้วยตัวเองดีบักผ่านมันหรือสร้างคุณสมบัติเฉพาะในท้องถิ่น แต่พลังที่แท้จริงของซอฟต์แวร์โอเพนซอร์สเกิดขึ้นเมื่อคุณมีส่วนร่วมกลับไปที่ฐานรหัสที่ใช้ร่วมกันและช่วยชุมชนโดยรวม ในขณะที่เราสนับสนุนสิ่งนี้มันต้องใช้ความพยายามมากขึ้นในส่วนของคุณ หากคุณสนใจที่จะก้าวขึ้นไปดูคู่มือการบริจาค Perfview และมาตรฐานการเข้ารหัส Perfview ก่อนที่จะเริ่ม
รหัสแบ่งออกเป็นหลายส่วนหลัก: