2008-11-02 34 views

Trả lời

5

Tôi chưa tìm thấy bất kỳ công cụ nào cho WindowsMobile để phát triển bản địa.

Gần nhất tôi đã tìm thấy là bộ công cụ EnTrek (CodeSnitch/ProcMan), nhưng chúng không thực sự là công cụ định hình. http://www.entrek.com/products.htm

Điều chúng tôi đã làm là tự xây dựng hỗ trợ lược tả riêng cho các sản phẩm của mình bằng cách sử dụng nút chuyển đổi Vistual Studio "/ callcap" cho VC++. Sử dụng công tắc đó, bạn có thể xây dựng một thư viện lược tả để tính thời gian và số lượng, bất kể bạn muốn gì. Nó chủ yếu hoạt động tốt cho chúng ta, nhưng đôi khi chi phí của các chức năng móc này có thể quá nhiều và nó có thể làm lệch kết quả định thời đến các vùng có số lượng lớn các cuộc gọi hàm.

Từ MSDN Documents:

Tùy chọn/callcap làm cho trình biên dịch để chèn các cuộc gọi đến profiling móc ở đầu và cuối mỗi chức năng .

Bạn phải biên dịch móc lược tả mà không cần nút chuyển đổi cuộc gọi. Nếu bạn biên dịch các hàm móc lược tả bằng công tắc chuyển đổi cuộc gọi, các chức năng sẽ thực hiện các cuộc gọi đệ quy vô hạn cho chính chúng.

Ví dụ mã sau, Callcaphooks.c, hiển thị móc lược tả chức năng, _CAP_Enter_Function, để biên soạn mà không cần callcap.

// File: callcaphooks.c 

#include <stdio.h> 
int main(); 

void _CAP_Enter_Function(void *p) 
{ 
    if (p != main) 
     printf("Enter function (at address %p) at %d\n", 
      p, GetTickCount()); 
     return; 
} 
void _CAP_Exit_Function(void *p) 
{ 
    if (p != main) 
     printf("Leaving function (at address %p) at %d\n", 
      p, GetTickCount()); 
    return; 
} 
+0

Cảm ơn, Shane. Như bạn đã nói, không chính xác những gì tôi đang tìm kiếm. Nhưng vẫn là một gợi ý tuyệt vời. Tôi đã có một số lớp tiện ích để lược tả, nhưng cho đến bây giờ tôi đã thêm chúng một cách thủ công thông qua các macro chỉ trong mã nghi ngờ. –

0

Nếu bạn đang thực hiện phát triển .NET CF, hãy xem Power Toys for .NET CF 3.5 để biết các tiện ích có thể giúp bạn xác định tắc nghẽn, đặc biệt là các lỗi liên quan đến bộ nhớ.

+0

Xin lỗi, tôi có nên nói, tôi đã ý thức được Power Toys nhưng trong trường hợp của tôi họ không thể được sử dụng bởi vì mã nguồn gốc. –

9

Windows CE hỗ trợ Remote Call Profiler (nếu OEM thêm hỗ trợ cho nó) ra khỏi hộp. WinMo hình ảnh, tôi tin rằng, thường có hỗ trợ đã có trong các hình ảnh cho nó. Đối với CE, bạn cần đặt bộ biến môi trường IMAGEPROFILER (sử dụng các thuộc tính của dự án).

Điều không rõ ràng trong MSDN là cách thiết bị một ứng dụng không được xây dựng bằng Trình tạo nền tảng, nhưng nó thực sự khá đơn giản. Bạn phải thêm/callcap swith vào dòng lệnh của trình biên dịch và thêm cecap.lib vào các thiết lập trình liên kết của bạn.

Tất nhiên bạn sẽ cần một công cụ để nắm bắt và hiển thị dữ liệu hồ sơ. Cho rằng bạn có thể sử dụng phiên bản đánh giá của Platform Builder (5.0 hoặc 6.0) (eval miễn phí) hoặc eVC 4.0 (cũng miễn phí).

Để biết thêm thông tin về cách sử dụng của profiler, Sue Loh từ nhóm lõi CE đã viết blog một chút về nó.

+0

+1 Cảm ơn bạn đã đề xuất điều này. Đó là một cuộc sống tiết kiệm :) Tối ưu hóa blitter của tôi như điên với dữ liệu của nó profiled. – legends2k

3

Tôi đã viết một biểu đồ Sơ đồ cuộc gọi cho Windows Mobile. Hiện tại (tính đến tháng 1 năm 2010) trong giai đoạn Beta và có thể tải xuống miễn phí.

http://www.codeprophet.co.cc

HTH

-Zak

+0

Dường như có triển vọng, tôi sẽ thử. –

+0

Dường như dự án đã chuyển sang http://codeprophet.co.uk – oscode

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