Trình cấu hình C ++ miễn phí tốt nhất cho Windows là gì? [đóng cửa]


224

Tôi đang tìm kiếm một hồ sơ để tìm ra nút cổ chai trong mã C ++ của mình. Tôi muốn tìm một công cụ định hình miễn phí, không xâm phạm và tốt. Tôi là nhà phát triển trò chơi và tôi sử dụng PIX cho Xbox 360 và thấy nó rất tốt, nhưng nó không miễn phí. Tôi biết Intel VTune , nhưng nó cũng không miễn phí.


VTune dường như là miễn phí ngay bây giờ: software.intel.com/en-us/vtune . Tôi đã tải xuống phiên bản cộng đồng và nó thực hiện công việc tuyệt vời về cấu hình C ++ cũng như mã C # được quản lý
Tiến sĩ ABT

1
Làm thế nào là lạc đề này? Các công cụ phát triển là về chủ đề theo như tôi biết. Đó là dựa trên ý kiến ​​mặc dù.
Nic Szerman

Câu trả lời:


135

CodeXL hiện đã thay thế Nhà phân tích mã AMD của End Of Line và cả hai đều miễn phí, nhưng không tiên tiến như VTune. Ngoài ra còn có Sleepy , rất đơn giản, nhưng thực hiện công việc trong nhiều trường hợp.


4
Đây là liên kết dành cho CodeAnalyst: developer.amd.com/CPU/CODESEALYST/Pages/default.aspx
epotter

1
Tôi đã thử làm việc với nó bây giờ, và không thích nó chút nào. Tôi thậm chí không thể hiểu làm thế nào để có được tổng thời gian% của hàm (bao gồm cả các calle) mà TrueTime có thể làm tốt 10 năm trước.
Pavel Radzivilovsky

Tôi đã viết một bản phóng tác của cơn buồn ngủ không phụ thuộc vào wxWidgets mà chạy trong dòng lệnh. Bạn chạy nó trong một khoảng thời gian chống lại một quy trình đang chạy và sau đó khi bạn dừng nó, bạn sẽ có được số liệu thống kê về quá trình mà nó đã dành thời gian thực hiện. Nó không xâm phạm ở chỗ bạn không phải sửa đổi mã của mình theo bất kỳ cách nào để sử dụng nó, nhưng nó sẽ tạm dừng các luồng của bạn khi nó đọc các ngăn xếp cuộc gọi. Bạn cũng cần các tệp pdb có sẵn để bạn có thể nhận được đầu ra có ý nghĩa, nhưng tôi đoán điều đó áp dụng cho bất kỳ trình lược tả nào.
CashCow

Tôi khuyên bạn nên dùng thử xperf Tôi thấy nó vượt trội so với nhà phân tích mã AMD.
MW_dev

1
CodeAnalyst sẽ không nhận được bất kỳ bản cập nhật nào nữa ngoại trừ các bản sửa lỗi nghiêm trọng. Họ chuyển sang CodeXL. Đây là liên kết để bạn có thể cập nhật câu trả lời của bạn. Và cảm ơn vì đã cho tôi biết về CodeAnalyst / XL.
Adri CS

61

Very Sleepy là một trình cấu hình CPU C / C ++ cho các hệ thống Windows (miễn phí).
CppCheck là một trình cấu hình CPU C / C ++ tĩnh cho các hệ thống Windows (miễn phí).


20
googletest là một khung thử nghiệm đơn vị. Làm thế nào bạn sẽ sử dụng điều đó để thực hiện hồ sơ?
Greatwolf

Nếu bạn đang sử dụng tệp nhị phân Windows từ ngăn xếp gcc, đây là một lựa chọn tuyệt vời - AMD CodeAnalyst không nhận ra các ký hiệu gcc trên Windows, nhưng rất buồn ngủ!
Mike


17

Có một trình lược tả thiết bị (chính xác chức năng) cho MS VC 7.1 và cao hơn được gọi là MicroProfiler. Bạn có thể lấy nó ở đây (x64) hoặc ở đây (x86) . Nó không yêu cầu bất kỳ sửa đổi hoặc bổ sung nào vào mã của bạn và có thể hiển thị số liệu thống kê chức năng với người gọi và callees trong thời gian thực mà không cần phải đóng ứng dụng / dừng quá trình định hình.

Nó tích hợp với VisualStudio, vì vậy bạn có thể dễ dàng bật / tắt cấu hình cho một dự án. Cũng có thể cài đặt nó trên máy sạch, nó chỉ cần thông tin biểu tượng được đặt cùng với tệp thực thi được định hình.

Công cụ này hữu ích khi xấp xỉ thống kê từ các trình lấy mẫu như Very Sleepy là không đủ.

So sánh thô cho thấy, nó đánh bại AQTime (khi nó được gọi trong thiết bị, chạy mức chức năng). Chương trình sau đây (tối ưu hóa hoàn toàn, vô hiệu hóa nội tuyến) chạy nhanh hơn ba lần với trình biên dịch vi mô hiển thị kết quả trong thời gian thực, so với AQTime chỉ đơn giản là thu thập số liệu thống kê:

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
Nó dễ sử dụng và hồ sơ siêu nhanh. Chỉ có một vấn đề tôi không giải quyết được là một vấn đề mà sau khi tôi gỡ lỗi xong, cửa sổ profiler không tự động đóng và bạn phải giết nó thông qua trình quản lý tác vụ (không có điều đó bạn không thể biên dịch lại dự án của mình).
Vodka Ludek

1
Tôi thấy rằng sau khi tôi đóng ứng dụng của mình bằng nút ĐÓNG thường xuyên, cửa sổ profiler cũng có thể được đóng thường xuyên. Nhưng khi tôi thoát ứng dụng bằng phím tắt SHIFT + F5 (Dừng gỡ lỗi lệnh VS), nút đóng cửa sổ profiler bị tắt.
Ludek Vodicka

Không hoạt động với VS 2015.
rustyx

1
Đã sửa lỗi kể từ 1.1.590. Xem các cập nhật trên trang Thư viện Visual Studio ( visualstudiogallery.msdn.microsoft.com/ ))
Arty

1
Điều này thực sự thực sự tốt! Nên xếp hạng cao hơn! Siêu đơn giản để cài đặt và chạy, và cung cấp cho bạn hầu hết những gì bạn cần biết. Lựa chọn thứ hai của tôi là Trình phân tích hiệu suất Windows: geekswithbloss.net/akraus1/archive/2015/04/21/163342.aspx
Steve

10

Microsoft có Bộ công cụ hiệu suất Windows .

Nó yêu cầu Windows Vista, Windows Server 2008 hoặc Windows 7.


6
Làm thế nào nó không miễn phí? Nó là một phần của SDK Windows. Tôi đã có thể tải nó mà không có bất kỳ vấn đề. (Phải thừa nhận rằng chúng tôi có đăng ký MSDN, vì vậy một số người có thể có trải nghiệm khác với tôi.)
epotter

1
Miễn phí hoặc không, liên kết không còn hoạt động đúng.
Tomáš Zato - Phục hồi Monica

7

Một bổ sung mới là Shiny .

Hay nói, là một tài tài của, qua, qua, qua một khác, qua giữ, qua một tài khác


3
Không thể tìm thấy nhị phân có thể tải xuống, chỉ cần mã nguồn. Không thuận tiện lắm.
Đức ông

5

Tôi đặc biệt khuyên dùng Bộ công cụ hiệu suất Windows (WPT) hoặc XPERF

Công cụ dòng lệnh xperf ghi lại các bản ghi Sự kiện theo dõi cho Windows (ETW) có thể được phân tích bằng công cụ GUI xperfview.

Sử dụng lập luận dòng lệnh stacktrace đã được chứng minh là một công cụ vô giá cho công ty của tôi vì nó cấu hình và khắc phục các tắc nghẽn. Một trong những điều hấp dẫn nhất là WPT có thể được cài đặt trong bất kỳ môi trường nào ngay cả trên Windows XP đáng kính .

Trên Windows 8, Trình phân tích hiệu suất Windows đưa xperf lên một mức cao hơn nữa.

Các số và số liệu thống kê cứng được cung cấp trong nhật ký ETW là vô cùng chi tiết ngoại trừ trình tạo hình ảnh trực quan (2010/2012), cũng rất tuyệt nhưng không phải là AFAIK miễn phí.

Nếu bạn chưa bao giờ sử dụng xperf ... bạn không biết bạn đang thiếu gì


1
Vâng, tôi biết tôi đang thiếu URL làm việc cho trang web.
Tomáš Zato - Tái lập lại

3

Tôi sử dụng AQTime, nó là một trong những công cụ định hình tốt nhất tôi từng sử dụng. Nó không miễn phí nhưng bạn có thể dùng thử 30 ngày, vì vậy nếu bạn có kế hoạch tối ưu hóa và lập hồ sơ chỉ một dự án và 30 ngày là đủ cho bạn thì tôi khuyên bạn nên sử dụng ứng dụng này. ( http://www.automatedqa.com/doads/aqtime/index.asp )


Chỉ có công cụ này giúp tôi lập hồ sơ được biên dịch trong chế độ phát hành hỗn hợp (được quản lý và bản địa) ứng dụng web trên IIS.
Đức ông

Thật không may là họ không hỗ trợ những người cố gắng đánh giá sản phẩm của họ.
Lucky Luke

Hiện tại họ đang cung cấp bản dùng thử 14 ngày với chức năng hạn chế.
Tối đa

2

Vui lòng thử trình hồ sơ của tôi, được gọi là cRunWatch. Nó chỉ là hai tệp, vì vậy rất dễ tích hợp với các dự án của bạn và yêu cầu thêm chính xác một dòng để tạo thành một đoạn mã.

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

Yêu cầu thư viện Boost.



0

Tôi đã sử dụng "TrueTime - một phần của bộ DevPartner của Compuware trong nhiều năm. Có [phiên bản miễn phí] (bạn có thể dùng thử Phiên bản Cộng đồng Phân tích Hiệu suất DevPartner của Compuware.) Có sẵn.



0

Bạn có thể sử dụng EmbeddedProfiler, nó miễn phí cho cả Linux và Windwos.

Trình hồ sơ là xâm nhập (theo chức năng) nhưng nó không yêu cầu bất kỳ sửa đổi mã nào. Chỉ cần thêm một cờ trình biên dịch cụ thể (-finstrument-funcios cho gcc / MinGW hoặc / GH cho MSVC) và liên kết thư viện của trình biên dịch. Nó có thể cung cấp cho bạn một cây cuộc gọi đầy đủ hoặc chỉ một danh sách funciton. Nó có GUI phân tích riêng.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.