2010-02-19 31 views
11

Bất kỳ ai cũng có thể liên kết tôi đến trang mô tả phân bổ bộ nhớ cho ứng dụng iPhone.Ứng dụng iPhone có thể sử dụng bao nhiêu bộ nhớ?

Tôi đã nghe nói rằng bạn bị giới hạn ở một hộp cát ~ 20 meg, tùy thuộc vào trạng thái của điện thoại, nhưng tôi không thể tìm thấy nguồn cho việc này.

+0

Từ những gì tôi đã đọc bạn bắt đầu nhận được những cảnh báo bộ nhớ sau khi ** 3MB **. Nhưng tôi không thể tìm thấy bất kỳ tài liệu tham khảo trở lại táo hoặc. –

+0

Đó không phải là kinh nghiệm của tôi. Chúng tôi không thực sự nhận được cảnh báo bộ nhớ cho đến khi chúng tôi đánh trẻ. Ứng dụng của chúng tôi chạy ở bất kỳ đâu từ 1,8-5 megs và ứng dụng này tăng vọt khi chúng tôi chụp ảnh. –

Trả lời

12

Tùy thuộc vào thiết bị bạn đang sử dụng. Tôi đã tìm thấy rằng với một iPhone 3G, khi tổng số bộ nhớ ứng dụng của bạn đang sử dụng đi trên 10-14MB, nó dễ bị rơi. Khi nó chạm 20MB, nó sẽ sụp đổ chắc chắn.

Theo như tôi biết, Apple không đưa ra bất kỳ số liệu cứng nào cho bộ nhớ mà bạn có thể sử dụng. Nó luôn thay đổi nên rất khó để pin xuống. Họ khuyên bạn nên dựa vào cảnh báo bộ nhớ và trả lời chúng một cách thích hợp.

iPhone 3GS có dung lượng bộ nhớ cao hơn nhiều so với các ứng dụng (tôi đã nghe nói rằng khoảng 4 lần). Mặc dù iPhone 3GS chỉ có gấp đôi bộ nhớ của iPhone 3G, rất nhiều bộ nhớ đó được đưa lên bởi hệ điều hành. Còn rất ít ứng dụng để chạy. Đó là lý do tại sao 3GS cho phép các ứng dụng sử dụng nhiều bộ nhớ hơn.

Ngoài ra, có thể có rất nhiều bộ nhớ đã được hệ điều hành sử dụng. Một ví dụ là khi safari đang giữ rất nhiều tab đang mở. Đây là lý do tại sao nhiều trò chơi khuyên bạn nên khởi động lại thiết bị nếu nó gặp sự cố.

Khi bạn lập trình, hãy theo dõi sự gia tăng bộ nhớ (do không xử lý đúng đối tượng) và bộ nhớ đỉnh. Vấn đề này là nhiều hơn về thử nghiệm trong thế giới thực (trên càng nhiều thiết bị càng tốt) và thực hành lập trình tốt.

Dưới đây là một bài báo để sẵn sàng thêm về làm thế nào để đối phó với các vấn đề bộ nhớ:

http://akosma.com/2009/01/28/10-iphone-memory-management-tips/

+0

Lưu một phần về Safari, điều này nói chung là chính xác. – bbum

+0

Điều Safari chỉ là tin đồn, tôi chưa bao giờ tự thử nghiệm nó. Bạn có thấy rằng điều đó không đúng? –

+0

@nevanking nhưng trong trường hợp ARC (tính tham chiếu tự động), chúng ta có nên lo lắng về việc sử dụng bộ nhớ nghĩa là về các đối tượng deallocating? – ViruMax

0

Tùy thuộc vào trạng thái thiết bị hiện tại. Một số ứng dụng iPhone gốc có thể chạy trong nền và lãng phí tài nguyên thiết bị (Mail, Safari, Sms, Phone ...) Vì vậy, thật khó để nói số lượng bộ nhớ u sẽ nhận được ... Lý tưởng nhất, ứng dụng của bạn nên ở trong giới hạn 10-12Mb để khắc phục thành công mọi vấn đề về bộ nhớ.

0

Tôi tin rằng đó là

  • cảnh báo Memory tại 20MB
  • Ứng dụng "treo" tại 30MB

Tôi khá chắc chắn tôi thấy điều này trong The iPhone Developer's Cookbook: Building Applications with the iPhone SDK by Erica Sadun (cuốn sách tuyệt vời, btw).

Đồng thời: Duplicate -> Maximum runtime memory available in iPhone and iPod?.

+0

Điều đó không đúng. Không có số khó. – bbum

+0

Tôi không có ý ám chỉ rằng đó là thực tế khoa học.Như một poster dưới đây đã viết "Tôi đã tìm thấy rằng với một iPhone 3G, khi tổng bộ nhớ ứng dụng của bạn đang sử dụng đi trên 10-14MB, nó dễ bị rơi. Khi nó chạm 20MB, nó sẽ sụp đổ chắc chắn." Đây là những con số khó khi bạn nghĩ về nó. – typeoneerror

1

Công cụ này tìm thấy là những gì mà dung lượng bộ nhớ tối đa của bất kỳ thiết bị iOS. Nó cũng có thể tìm thấy ở cấp độ bộ nhớ mà bạn nhận được cảnh báo Bộ nhớ thấp.

đây là liên kết: https://github.com/Split82/iOSMemoryBudgetTest

+0

Đây là một dự án nhỏ tuyệt vời. Cảm ơn các liên kết. –

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