2011-10-09 25 views

Trả lời

7

Việc tạo hồ sơ Android-NDK không dễ dàng. Bạn cần thực hiện theo các bước here kỹ lưỡng.

Dưới đây là một số mẹo mà dẫn tôi đến thành công:

  • Hãy chắc chắn rằng android.mk của bạn là chính xác và rằng bạn xuất NDK_MODULE_PATH.
  • Sử dụng đúng các chức năng sau

    monstartup ("your_lib.so");

    moncleanup();

  • Nếu gmon.out được tạo ra ngay bây giờ, bạn cần phải kéo nó ra khỏi thiết bị, nhưng không cần đến bất kỳ đâu trong máy tính của bạn. Đối với tôi nó chỉ hoạt động nếu tôi đi đến thư mục của ứng dụng (nơi JNI, obj, res và thư mục khác) và tôi làm:

    console $ adb pull sdcard/gmon.out

  • Sau đó chạy gprof. Hãy thử tất cả các phiên bản trong bộ công cụ NDK của bạn. Đối với tôi chỉ có một làm việc, điều này một:

    console $ ~/thư viện/android-ndk-r9/toolchains/cánh tay-linux-androideabi-4,8/dựng sẵn/linux-x86_64/bin/cánh tay-linux-androideabi -gprof obj/local/armeabi-v7a/libxxxx.so> profile.txt

8

Shiny profiler là nền tảng độc lập, nó chạy ở bất kỳ đâu và nó không có bất kỳ phụ thuộc nào ngoài trình biên dịch C++ chuẩn. Trong cách sử dụng đơn giản hơn, tất cả những gì bạn cần làm là thêm một macro vào đầu tất cả các hàm và phương thức (hoặc ít nhất là những hàm mà bạn muốn cấu hình).

+2

Sửa đổi mỗi chức năng trong dự án là đau đớn. Tôi thích dụng cụ tự động hơn. Nhưng cảm ơn về tiền boa! –

+3

Nếu không có gì khác hoạt động, tôi đảm bảo bạn sẽ sáng bóng. Tôi đã có một vấn đề tương tự với webOS. Hỗ trợ gprof đã bị hỏng và không có gì khác có sẵn. Shiny đã làm rất tốt và giúp tôi giải quyết các vấn đề về hiệu suất của mình. Đối với các nỗ lực của thiết bị mã tôi chỉ viết một kịch bản mà tất cả các cơ quan chức năng bằng cách sử dụng một biểu thức chính quy, sau đó chèn các cuộc gọi macro tự động, do đó, nó không phải là đau đớn cả. Chúc may mắn với tìm kiếm của bạn. – Miguel

+0

Làm cho tinh thần! Tự động chèn macro, ý tôi là. Cảm ơn! –

2

Bộ khuếch đại VTune của Intel. Hồ sơ này cho phép bạn thu thập các điểm nóng với ngăn xếp trên các thiết bị Android không có gốc hoặc bất kỳ sửa đổi hệ điều hành nào. Đây là hướng dẫn đơn giản: http://software.intel.com/en-us/articles/using-intel-vtune-amplifier-on-non-rooted-android-devices

+0

Thời gian bắt đầu nhắm mục tiêu Android. Nhưng họ có hỗ trợ ARM hay chỉ là x86? –

+0

Có, nó hoạt động tốt trên cả hai vòm. –

+0

Xin chào Ilya! :) Có thực sự tốt hơn android-ndk-profiler không? Chi phí là bao nhiêu? –

1

trong r13b NDK có một công cụ mới có tên gọi simpleperf

+0

Tài liệu Simpleperf được đăng tại https://android.googlesource.com/platform/system/extras/+/master/simpleperf/README.md – osgx

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