2010-03-05 39 views
8

Tôi đã sử dụng hai công cụ lược tả (VTune trên windows và dbx (trong sunstudio) trên Solaris) có thể lập hồ sơ chương trình mà không cần xây dựng lại chúng, và trong quá trình lược tả, chương trình chỉ chạy với tốc độ như bình thường. Cả hai tính năng này đều tiết kiệm cho tôi rất nhiều thời gian.Cách lập hồ sơ chương trình trên nền tảng Linux mà không cần xây dựng lại?

Bây giờ tôi muốn biết nếu có một số công cụ miễn phí có sẵn trên nền tảng Linux có thể làm điều tương tự không. Tôi nghĩ rằng tôi cần các công cụ định hình dựa trên lấy mẫu. VTune là tốt nhưng đắt tiền ... Tôi đã nghe nói về gprof và valgrind. Nhưng dường như gprof cần thiết lập chương trình (vì vậy chúng tôi phải xây dựng lại chương trình) và valgrind sẽ làm chậm chương trình thực thi khá nhiều. (từ phần giới thiệu của valgrind, Cachegrind chạy các chương trình chậm hơn bình thường 20- 100x so với bình thường, và Callgrind mà tôi cần phải lược tả dựa trên Cachegrind)

Để lược tả, tôi chỉ cần tìm ra thời gian thực hiện các cuộc gọi hàm để tôi có thể tìm ra nơi sự xuống cấp hiệu suất xảy ra. Trên thực tế, tôi không cần nhiều thông tin định dạng cấp thấp như Cachegrind đã cung cấp ...

Trả lời

5

oprofile là khá tốt, nhưng có thể khó thiết lập. Nó cũng không yêu cầu bạn phải xây dựng lại chương trình của bạn.

+0

Vâng ... Điều đó có vẻ như những gì tôi cần .. Nhưng tôi nghĩ rằng nó cần tài khoản gốc để thiết lập, phải không? – superb

+0

Có, nó yêu cầu root để thiết lập. Hoặc sudo, tùy thuộc vào cách tập tin sudoers của bạn được thiết lập. Tôi muốn đề nghị sử dụng một máy ảo, nhưng làm profiling trong một máy ảo có vẻ như một ý tưởng tồi - các nút cổ chai khi chạy dưới một máy ảo có thể không giống như khi chạy trên một máy vật lý. Tôi hy vọng bạn có gốc trên hệ thống của bạn. – George

+0

OK. Sau khi đọc một số tài liệu về oprofiler tôi hiểu rằng nó cần hạt nhân để thu thập một số bộ đếm phần cứng để nó có thể lược tả chương trình một cách nhanh chóng, do đó cần có đặc quyền root để cấu hình. Nó có thể không dễ dàng để có quyền truy cập root kể từ khi tôi đã sử dụng một máy tính công cộng và hồ sơ sẽ ảnh hưởng đến hiệu suất của máy đó. Vì vậy, tôi nghĩ Valgrind có lẽ là lựa chọn tốt nhất ... – superb

0

Tùy chọn đẹp hơn oprofile là Zoom. Nó tương tự như Shark trên Mac OS X, nếu bạn đã từng sử dụng nó. Đó là thương mại ($ 199) nhưng bạn có thể dùng thử miễn phí từ www.rotateright.com.

1

Đồng ý với Paul, tôi nghĩ Zoom có ​​lẽ là trình biên dịch Linux tốt nhất mà bạn có thể trả tiền.

Tuy nhiên, đối với real results, tôi dựa vào this simple method, mà tôi đã sử dụng vì trước khi trình tạo hồ sơ được phát minh.

1

Performance Counters for Linux là công cụ mới có thể sử dụng được trên hạt nhân 2.6.31 trở lên; nó ít xâm nhập (cho cả chương trình và toàn bộ hệ thống) hơn là valgrind hoặc OProfile.

Các vấn đề liên quan