5

Tôi đang sử dụng Cocos2d 2.0 có bật ARC. Trò chơi của tôi là một trò chơi được tạo ngẫu nhiên vì vậy tôi cần phải tải/dỡ các họa tiết (spritesheet-batchnode) trong một cảnh ở giữa trò chơi. Tôi đang cố gắng để removespriteframesfromfile và loại bỏ kết cấu cho chìa khóa cho một spritesheet mà tôi muốn dỡ bỏ ở giữa. Khi tôi sử dụng dumpcachedtextureInfo sau khi dỡ bỏ trang tính, kết cấu spritesheet không hiển thị trong nhật ký của dumpcachedtextureinfo.Ước tính mức sử dụng bộ nhớ của trò chơi Cocos2d

Nhưng khi tôi sử dụng dụng cụ/màn hình hoạt động để cấu hình ứng dụng của tôi, việc sử dụng bộ nhớ thực không giảm sau khi dỡ kết cấu và spritesheet.

Có cách nào mà dumpcachedtextureinfo sẽ không hiển thị kết cấu vẫn còn trong bộ nhớ không? Ngoài ra, cột Thời lượng của tôi trong phân bổ cho thấy 4 MB.

Ngoài ra khi tôi đọc ở những nơi khác nhau mà phân bổ không hiển thị bộ nhớ kết cấu.

Vì vậy, việc phân bổ của tôi sống byte Cột 4 MB, tổng bộ nhớ kết cấu của tôi như hình với các bản ghi của dumpcchedtextureinfo được chứng minh là 84MB, nhưng màn hình bộ nhớ ảnh tĩnh cho thấy sử dụng bộ nhớ thực là 84 + Kích thước Spritesheet + Live Bytes

Tôi không thể hiểu sự khác biệt này?

Tôi không thoát hiện trường, vì vậy tôi không chắc liệu ARC có giữ bộ nhớ hay không?

+0

Kể từ khi bạn đã sử dụng dụng cụ, kiểm tra xem bất kỳ lớn số lượng bộ nhớ vẫn còn "sống" và có lẽ bị rò rỉ. Ngoài ra, có lẽ bạn đang xem xét tổng cột phân bổ sẽ không bao giờ giảm. – LearnCocos2D

+0

Tôi lo ngại về chỉ số "Sử dụng bộ nhớ thực" dưới màn hình hoạt động. Nó không giảm ở tất cả ngay cả sau khi dỡ hàng. Tôi không thể hiểu tại sao lại như vậy? – user1847220

Trả lời

4

Một số lưu ý hữu ích cho bạn

  • This Cocos2d memory optimisation giải thích rất tốt về quản lý bộ nhớ trong Cocos2d.

  • Để kiểm tra tổng mức sử dụng phân bổ bộ nhớ: Instrument-> Activity monitor.

enter image description here

enter image description here

  • Để kiểm tra rò rỉ bộ nhớ sử dụng: Instrument-> Xì enter image description here
+0

Tôi đã đi qua liên kết đó và có nó rất hữu ích. Vấn đề của tôi không phải là bộ nhớ tối ưu. Vấn đề của tôi là biết chính xác bộ nhớ được ứng dụng của tôi sử dụng tại một phiên bản thời gian. – user1847220

+0

trong công cụ bạn có thể thấy ... hy vọng u biết: - – Guru

+1

cũng: chọn phân bổ, danh sách đối tượng. Tìm kiếm tên lớp (ví dụ: CCTexture2D). Nếu có một chấm bên cạnh nó, nó vẫn còn sống (trong bộ nhớ). Xem liệu điều đó có thay đổi khi loại bỏ texs khỏi bộ nhớ cache hay không. – LearnCocos2D

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