2014-07-24 18 views
9

Thỉnh thoảng khi tôi tải chế độ xem bảng và tôi không thực hiện hoạt động cố ý ngoại trừ việc cho phép xem bảng hiển thị, tôi sẽ đợi một vài giây và sau đó mức sử dụng CPU của tôi sẽ tăng lên. Làm thế nào tôi có thể tìm ra nguyên nhân?Cấu hình CPU iOS: Tại sao chủ đề này có thể hút lên 99,9% CPU?

enter image description here

+0

Tôi đoán rằng nó nằm trong vòng lặp "vô hạn". Trong trường hợp này có khả năng vì lưu trữ đã bị nhổ, mặc dù có thể vì bạn đã mô tả một cấu trúc dữ liệu hình tròn đang được điều hướng bằng cách nào đó. –

+0

Tôi nghĩ chúng tôi sẽ cần thêm chi tiết (phiên bản iOS và thứ tư). Và nó có lẽ và vòng lặp vô hạn như @HotLicks nói. – Idris

+0

Đảo ngược cây cuộc gọi và thử tìm phương pháp/chức năng vi phạm. Âm thanh như một vấn đề UIKit/vẽ. – duci9y

Trả lời

15

Tại sao chủ đề này có thể được hút lên 99,9% CPU?

Tôi không biết. Nhưng đây là một số suy nghĩ:

  1. Thư viện chịu trách nhiệm là UIKit. Vì vậy, có vẻ như một số mã giao diện người dùng bị hỏng.
  2. Chức năng có tên FreeContextStack đang chạy trong một thời gian dài.
  3. pthread_oncepthread_getspecific mất một khoảng thời gian đáng kể. Các chức năng này rất nhanh, vì vậy chúng phải chạy thường xuyên rất.
  4. Họ là một phần của GetContextStackPopContext

Dường như trong mã của bạn có một số loại "bối cảnh" ngăn xếp bị đẩy-nhưng không xuất hiện. Tôi muốn tìm sự xuất hiện của UIGraphicsPushContext hoặc UIGraphicsBeginImageContext mà không có đối tác đóng của họ.

Nhưng tôi có thể hoàn toàn tắt và các chức năng đó không phải là một phần của mã ngữ cảnh đồ họa.

+1

Ví dụ: có thể là ngữ cảnh A là con của ngữ cảnh B, là con của ngữ cảnh A .... –

+0

Chính xác! Tôi đã thiếu 'UIGraphicsEndImageContext()' và 'CGImageRelease (imageRef)'. –

+0

Tôi đã nhìn thấy điều tương tự. Đã có cùng một vấn đề. Cảm ơn bạn internet người đàn ông thông minh! – voidref

1

của nó có thể bạn không kết thúc của bạn UIGraphicsBeginImageContext

tôi đã giải quyết được cùng bằng cách thêm UIGraphicsEndImageContext sau khi sử dụng.

+0

(Rudi, bạn đã xuất hiện trong hàng đợi bài viết chất lượng thấp vì câu trả lời của bạn trông giống như "Tôi có cùng một vấn đề", vì vậy tôi đã thay đổi một chút - hy vọng nó ok với bạn) –

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