2008-11-28 31 views
5

Tôi mới sử dụng Shark, và tôi tự hỏi liệu có thể thu hẹp mẫu thời gian thành một phương pháp cụ thể không?Cá mập: cách lọc xuống một phương pháp cụ thể

Giả sử tôi muốn, chỉ vì lợi ích của nó, biết có bao nhiêu tài nguyên đã được sử dụng cho các cuộc gọi đến phương thức 'đếm' cho tất cả các trường hợp NSArray (hoặc lớp con).

Trả lời

2

Nếu bạn xem biểu đồ hồ sơ thời gian từ dưới lên và tính bất kỳ khoản thời gian nào trong thư viện cho người gọi, điều đó sẽ cung cấp cho bạn những gì bạn muốn. Nó cho phép bạn xem lượng thời gian được sử dụng vì số lượng (nghĩa là cả khi thực hiện phương thức đó và bất kỳ thứ gì mà phương thức cần để hoàn thành công việc của nó) và cũng cho phép bạn tìm ra nơi bạn đang gọi phương thức. Có thể lý do bạn bỏ ra quá nhiều thời gian không phải vì mất nhiều thời gian, mà bởi vì bạn thường xuyên làm điều đó.

+0

Hi Graham, tôi bị mất, bạn có thể cụ thể hơn không? Bạn đang đề cập đến một biểu đồ hồ sơ thời gian? Và bạn có ý gì khi sạc? –

+0

Graham, bạn có thể cụ thể hơn về cách thực hiện trên giao diện không? –

1

Thời gian chi tiêu ít nhất là ở cấp chức năng chính xác là những gì mà dụng cụ mang lại cho bạn. Với DTrace bạn thậm chí có thể đào sâu hơn thế. Có thể thanh toán my blog post về việc này. Điều đó hy vọng sẽ xóa mọi thứ.

Bạn có thể dễ dàng viết tập lệnh DTrace để in mức tiêu thụ bộ nhớ của cuộc gọi đếm chẳng hạn.

cổ vũ, Torsten

1

Bạn có thể nhấn cmd-f để tìm kiếm một biểu tượng. Đảm bảo rằng hộp kiểm "tự động mở rộng" được bật để nó đi xuống cây. Bạn có thể cần bật Cửa sổ -> Hiển thị Cài đặt Nâng cao.

Khi bạn tìm thấy những biểu tượng, nhấn chuột phải vào nó và bạn có một số lựa chọn:

  • Focus Symbol: điều này sẽ cho phép bạn lọc xuống chỉ còn các cuộc gọi đến các biểu tượng bạn đã chọn và dưới

  • Giữ lại Callstacks với: điều này sẽ cho phép bạn xem tất cả các cuộc gọi đến các biểu tượng và lọc ra tất cả mọi thứ khác

Khi bạn làm xong bạn có thể nhấp chuột phải và "không tập trung tất cả" hoặc "khôi phục tất cả". Các lệnh này sẽ kết thúc sửa đổi phần "khai thác dữ liệu callstack" trong cài đặt nâng cao. Đánh lừa xung quanh với điều đó.

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