Profiler C ++ ฟรีที่ดีที่สุดสำหรับ Windows คืออะไร [ปิด]


224

ฉันกำลังมองหาผู้สร้างโปรไฟล์เพื่อค้นหาคอขวดในรหัส C ++ ของฉัน ฉันต้องการหาเครื่องมือสร้างโปรไฟล์ฟรีที่ไม่ล่วงล้ำและดี ฉันเป็นผู้พัฒนาเกมและฉันใช้ PIX สำหรับ Xbox 360 และพบว่าดีมาก แต่ไม่ฟรี ฉันรู้ Intel VTuneแต่ไม่ฟรี


VTune ดูเหมือนจะเป็นฟรีในขณะนี้: software.intel.com/en-us/vtune ฉันดาวน์โหลดรุ่นชุมชนและใช้งานได้ดีกับการทำโปรไฟล์ C ++ เช่นเดียวกับการจัดการรหัส C #
ดร. ABT

1
หัวข้อนี้เป็นอย่างไร เครื่องมือพัฒนาอยู่ในหัวข้อเท่าที่ฉันรู้ มันเป็นไปตามความคิดเห็น
Nic Szerman

คำตอบ:


135

ตอนนี้CodeXLได้แทนที่ End Of Line'd นักวิเคราะห์รหัสของAMDและทั้งสองรุ่นนั้นฟรี แต่ไม่ใช่ขั้นสูงเท่ากับ VTune นอกจากนี้ยังมีSleepyซึ่งง่ายมาก แต่ทำงานในหลาย ๆ กรณี


4
นี่คือลิงค์สำหรับ CodeAnalyst: developer.amd.com/CPU/CODEANALYST/Pages/default.aspx
epotter

1
ฉันพยายามทำงานกับมันตอนนี้และไม่ชอบเลย ฉันไม่เข้าใจด้วยซ้ำว่าจะได้รับฟังก์ชั่น% เวลาทั้งหมด (รวมถึง Callees) ซึ่ง TrueTime สามารถทำได้ดีเมื่อ 10 ปีที่แล้ว
Pavel Radzivilovsky

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

ฉันอยากจะแนะนำให้ลอง xperf ฉันพบว่ามันยอดเยี่ยมกว่านักวิเคราะห์โค้ดของ AMD
MW_dev

1
CodeAnalyst จะไม่ได้รับการอัพเดตใด ๆ เพิ่มเติมยกเว้นการแก้ไขข้อบกพร่องที่สำคัญ พวกเขาเปลี่ยนเป็น CodeXL นี่คือลิงค์เพื่อให้คุณสามารถอัปเดตคำตอบของคุณ และขอบคุณที่ให้ฉันเกี่ยวกับ CodeAnalyst / XL ตอนนี้
Adri CS

61

Very Sleepyเป็นตัวสร้างโปรไฟล์ C / C ++ สำหรับระบบ Windows (ฟรี)
CppCheckเป็นCiler C / C ++ แบบคงที่สำหรับระบบ Windows (ฟรี)


20
googletest เป็นกรอบการทดสอบหน่วย คุณจะใช้วิธีดังกล่าวเพื่อทำโปรไฟล์อย่างไร
greatwolf

หากคุณใช้ไบนารี Windows จาก gcc stack นี่เป็นตัวเลือกที่ยอดเยี่ยม - AMD CodeAnalyst ไม่รู้จักสัญลักษณ์ gcc บน Windows แต่ง่วงนอนมาก!
Mike


17

มีผู้สร้างเครื่องมือ (ฟังก์ชันที่แม่นยำ) สำหรับ MS VC 7.1 และสูงกว่าที่เรียกว่า MicroProfiler คุณจะได้รับมันนี่ (x64)หรือนี่ (x86) มันไม่จำเป็นต้องมีการแก้ไขหรือเพิ่มเติมรหัสของคุณและสามารถแสดงสถิติของฟังก์ชั่นกับผู้โทรและ callees แบบเรียลไทม์โดยไม่จำเป็นต้องปิดแอปพลิเคชัน / หยุดกระบวนการทำโปรไฟล์

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

เครื่องมือนี้มีประโยชน์เมื่อการประมาณทางสถิติจากการสุ่มตัวอย่างโปรไฟล์เช่น Very Sleepy ไม่เพียงพอ

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

void f()
{
    srand(time(0));

    vector<double> v(300000);

    generate_n(v.begin(), v.size(), &random);
    sort(v.begin(), v.end());
    sort(v.rbegin(), v.rend());
    sort(v.begin(), v.end());
    sort(v.rbegin(), v.rend());
}

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

1
ฉันพบว่าหลังจากฉันปิดแอปของฉันด้วยปุ่มปิดปกติหน้าต่าง profiler ก็สามารถปิดได้เช่นกัน แต่เมื่อฉันออกจากแอพโดยทางลัด SHIFT + F5 (คำสั่งหยุดการดีบัก VS) ปุ่มปิดหน้าต่างปิดของ profiler จะปิดใช้งาน
Ludek Vodicka

ใช้งานไม่ได้กับ VS 2015
rustyx

1
แก้ไข ณ วันที่ 1.1.590 ดูอัปเดตในหน้าแกลเลอรี Visual Studio ( visualstudiogallery.msdn.microsoft.com/… )
Arty

1
นี่เป็นสิ่งที่ดีจริงๆ! ควรได้รับการจัดอันดับทางที่สูงขึ้น! ง่ายสุดในการติดตั้งและเรียกใช้และให้สิ่งที่คุณต้องรู้ ตัวเลือกที่สองของฉันคือตัววิเคราะห์ประสิทธิภาพของ Windows: geekswithblogs.net/akraus1/archive/2015/04/21/163342.aspx
Steve

10

Microsoft มี Windows ประสิทธิภาพ Toolkit

มันต้องการ Windows Vista, Windows Server 2008หรือ Windows 7


6
มันฟรีอย่างไร มันเป็นส่วนหนึ่งของ Windows SDK ฉันสามารถดาวน์โหลดได้โดยไม่มีปัญหา (เป็นที่ยอมรับว่าเรามีการสมัครสมาชิก MSDN ดังนั้นบางคนอาจมีประสบการณ์ที่แตกต่างจากที่ฉันทำ)
epotter

1
ฟรีหรือไม่ลิงก์ไม่ทำงานอย่างถูกต้อง
Tomáš Zato - Reinstate Monica


5

ฉันขอแนะนำWindows Performance Toolkit (WPT)หรือXPERF

เครื่องมือบรรทัดคำสั่ง xperf บรรทัดคำสั่งบันทึกเหตุการณ์การสืบค้นกลับสำหรับ Windows (ETW) บันทึกที่สามารถวิเคราะห์โดยใช้เครื่องมือ GUI xperfview

การใช้การยืนยันบรรทัดคำสั่ง stacktraceได้พิสูจน์แล้วว่าเป็นเครื่องมือที่มีค่าสำหรับ บริษัท ของฉันเนื่องจากโปรไฟล์และแก้ไขปัญหาคอขวด หนึ่งในสิ่งที่น่าสนใจที่สุดคือ WPT สามารถติดตั้งได้ในทุกสภาพแวดล้อมแม้กระทั่งบนWindows XP ที่น่าเชื่อถือ

ในWindows 8 ตัววิเคราะห์ประสิทธิภาพของ Windowsยกระดับ xperf ให้สูงขึ้น

ตัวเลขและสถิติที่จัดทำในบันทึก ETW นั้นมีรายละเอียดที่เหนือชั้นยกเว้นสำหรับผู้สร้างโปรไฟล์ภาพ (2010/2012) ซึ่งเยี่ยมยอด แต่ไม่ฟรี AFAIK

หากคุณไม่เคยใช้ xperf ... คุณไม่ทราบว่าคุณพลาดอะไรไป


1
ฉันรู้ว่าฉันทำ URL ของเว็บไซต์ไม่ทำงาน
Tomáš Zato - Reinstate Monica

3

ฉันใช้ AQTime เป็นหนึ่งในเครื่องมือทำโปรไฟล์ที่ดีที่สุดที่ฉันเคยใช้ มันไม่ฟรี แต่คุณสามารถทดลองใช้ได้ 30 วันดังนั้นหากคุณวางแผนที่จะเพิ่มประสิทธิภาพและสร้างโปรไฟล์เพียงหนึ่งโครงการและ 30 วันก็เพียงพอสำหรับคุณดังนั้นฉันขอแนะนำให้ใช้โปรแกรมนี้ ( http://www.automatedqa.com/downloads/aqtime/index.asp )


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

เป็นเรื่องน่าเสียดายที่พวกเขาไม่สนับสนุนคนที่พยายามประเมินผลิตภัณฑ์ของพวกเขา
ลัคกี้ลุค

ขณะนี้พวกเขากำลังเสนอการทดลองใช้ 14 วันโดยมีฟังก์ชั่น จำกัด
Max

2

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

http://ravenspoint.wordpress.com/2010/06/16/timing/

ต้องการไลบรารี Boost



0

ฉันใช้ "TrueTime - เป็นส่วนหนึ่งของชุด DevPartner ของ Compuware เป็นเวลาหลายปีมี [รุ่นฟรี] (คุณสามารถลองใช้งาน Compuware DevPartner Performance Analysis Community Edition) ได้



0

คุณสามารถใช้ EmbeddedProfiler ได้ฟรีทั้ง Linux และ Windwos

ตัวสร้างโปรไฟล์ล่วงล้ำ (ตามหน้าที่การใช้งาน) แต่ไม่จำเป็นต้องแก้ไขโค้ดใด ๆ เพียงเพิ่มแฟล็กคอมไพเลอร์เฉพาะ (-finstrument-functios สำหรับ gcc / MinGW หรือ / GH สำหรับ MSVC) และเชื่อมโยงไลบรารีของ profiler มันสามารถให้สายการโทรแบบเต็มหรือเพียงแค่รายการ funciton มีตัววิเคราะห์ GUI เป็นของตัวเอง

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.