Apple nói rằng đây là một ý tưởng tốt để tiết kiệm bộ nhớ. Điều đó sẽ trông như thế nào trong mã?Làm cách nào để tạo một nhóm tự động phát hiện cục bộ để tiết kiệm bộ nhớ?
6
A
Trả lời
11
Thường thì bạn không cần phải tạo hồ bơi tự động trả tiền, bởi vì hệ thống quan tâm đến điều này. Nhưng, đôi khi bạn cần phải làm điều này. Đó là bình thường trong các vòng lớn. Mã sẽ trông như thế này:
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
int i;
for (i = 0; i < 1000000; i++) {
id object = [someArray objectAtIndex:i];
// do something with object
if (i % 1000 == 0) {
[pool release];
pool = [[NSAutoreleasePool alloc] init];
}
}
[pool release];
hồ autorelease được lưu giữ như một chồng: nếu bạn thực hiện một hồ bơi autorelease mới, nó được thêm vào phía trên cùng của ngăn xếp, và mỗi tin nhắn autorelease đặt người nhận vào hồ bơi trên cùng .
Các vấn đề liên quan
- 1. Tiết kiệm toàn bộ Bundle để SharedPreferences
- 2. Làm thế nào để tiết kiệm bộ nhớ khi đọc một tệp trong Php?
- 3. Làm cách nào để định cấu hình Spring để tiết kiệm bộ nhớ nhiều nhất có thể?
- 4. Cách tạo động một biến cục bộ?
- 5. Làm cách nào để khai báo bộ nhớ cục bộ trong OpenCL?
- 6. Làm cách nào để phát hiện trạng thái Hết bộ nhớ?
- 7. Làm cách nào để đọc/phát tệp mà không tải toàn bộ tệp vào bộ nhớ?
- 8. Làm thế nào để nhúng một tệp video cục bộ vào Html để phát trong UIWebView?
- 9. Tôi làm cách nào để tự động phát hiện proxy?
- 10. Làm cách nào để lưu dữ liệu từ biểu mẫu bằng Bộ nhớ cục bộ HTML5?
- 11. Làm cách nào để tạo chứng chỉ cho phát triển cục bộ bằng SSL?
- 12. Làm cách nào để xem bộ nhớ cache trong Android?
- 13. Làm thế nào tôi có thể phát hiện tự động tiết kiệm ánh sáng ban ngày trong PHP?
- 14. Cách tạo nhóm người dùng cục bộ (trong C#)
- 15. Làm cách nào để phát hiện lại Bộ nhớ Flash USB bằng phần mềm?
- 16. Làm cách nào để truy cập bộ nhớ cục bộ HTML5 được tạo bởi PhoneGap trên iOS?
- 17. C++ bộ nhớ được cấp phát động
- 18. phát hiện kích thước trang bộ nhớ
- 19. Tôi làm cách nào để tạo bộ xử lý chú thích xử lý Biến cục bộ?
- 20. Có cờ gcc để khởi tạo bộ nhớ biến cục bộ không?
- 21. Phát hiện rò rỉ bộ nhớ
- 22. Làm thế nào để phát hiện rò rỉ bộ nhớ trong QtCreator trên Windows?
- 23. Tôi làm cách nào để sử dụng bộ nhớ cục bộ để lưu trữ giá trị của nhiều biến?
- 24. Bạn có thể sử dụng bộ nhớ cục bộ của HTML5 để làm gì?
- 25. Có sử dụng smallint datatype trên int trong mysql thực sự tiết kiệm bộ nhớ?
- 26. Làm cách nào để triển khai bộ nhớ cache hình ảnh trong bộ nhớ trong Android?
- 27. Bố cục bộ nhớ Đối tượng C++
- 28. Thừa kế nguyên mẫu nên tiết kiệm bộ nhớ, phải không?
- 29. Làm thế nào để thiết lập dự án IntelliJ Idea Scala để nhận ra bộ nhớ cache Ivy2 cục bộ?
- 30. Làm thế nào để đơn vị kiểm tra một chi tiết thực hiện như bộ nhớ đệm
Mô tả hay. Calling objectAtIndex: tuy nhiên không thêm bất cứ thứ gì vào nhóm autorelease, vì vậy bạn có thể sử dụng nó trong vòng lặp mà không có nhóm autorelease. –
Hãy nhớ rằng Apple khuyến nghị sử dụng [pool drain] thay vì [pool release] như là một thói quen tương thích trong tương lai với môi trường GC. –
@Marc Charbonneau sau đó bạn sẽ không bị rò rỉ vì không gọi phát hành trên hồ bơi? –