2013-06-01 16 views
9

Tôi đang cố gắng hiểu các hoạt động bên trong của các dụng cụ của XCode. Trên MacOS, nó có thể dựa vào DTrace để thu thập tất cả các loại dữ liệu lược tả. Trên iOS, nó cũng có khả năng nhiều thứ, nhưng tôi đã đọc nhiều lần rằng DTrace chưa được chuyển sang iOS.Công cụ thu thập dữ liệu từ iOS mà không có DTrace khả dụng như thế nào?

Vậy cách hoạt động?

Tài liệu Apple trên DTrace không cho tôi biết nhiều về các hoạt động bên trong tại đây. Tuy nhiên, tôi đã nhận thấy rằng khi định hình ứng dụng của riêng mình từ XCode bằng cách sử dụng các công cụ, XCode dường như xây dựng nó một cách khác nhau. Điều đó có nghĩa là nó liên kết một số nhà cung cấp DTrace độc ​​lập với mã của tôi?

Cảm ơn trước!

/e: Tôi sẽ Bounty câu hỏi này với TOÀN BỘ 6 ĐIỂM DANH TIẾNG của tôi nếu duy nhất tôi có thể ...

Trả lời

5

cho ứng dụng iOS chạy bên trong Simulator, rõ ràng các Simulator là một chương trình Mac OS X, vì vậy nó có thể sử dụng DTrace để giám sát mọi thứ mà Trình mô phỏng thực hiện.

Đối với các ứng dụng iOS chạy trên iPhone, tôi đồng ý tài liệu cung cấp ít thông tin chi tiết về những gì đang xảy ra. Có thể tải mã theo dõi vào quá trình đích trên iOS (bằng cách thêm mã vào thời gian biên dịch hoặc bằng cách liên kết mã trong thời gian chạy) hoặc có "trình gỡ lỗi truyền thống" chạy trên iOS theo quy trình đích để thực hiện theo dõi. Đó là những lựa chọn duy nhất nếu không có hỗ trợ cấp hạt nhân để sử dụng DTrace.

Tôi chưa bao giờ sử dụng Nhạc cụ, nhưng điều quan trọng nhất là tôi có thể thu thập số liệu thống kê có vẻ như hệ điều hành về I/O, thường không thể đo lường được nếu không có DTrace. Tôi không chắc vì tôi chưa sử dụng, nhưng có thể những số liệu thống kê này chỉ theo dõi I/O từ các điểm đầu vào dễ phát hiện (tức là các syscalls liên quan đến I/O từ quá trình đích cụ thể), hoặc có các nguồn thống kê cụ thể khác của iOS được xuất bản bởi hệ điều hành. Ví dụ: có thể nhận được nhiều thống kê hệ thống từ Mac OS X bằng cách gọi sysctl. Tùy thuộc vào số liệu thống kê thực sự được thu thập, các thiết bị chỉ có thể sử dụng các bộ đếm đơn giản như thế này để thực hiện hầu hết công việc.

Nếu bạn thực sự quyết tâm tìm câu trả lời, đó sẽ là một thử thách DTrace thú vị để tìm ra vấn đề này bằng chính bản thân các công cụ DTracing. Chúc may mắn :-)

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