2014-04-15 17 views
11

Tôi đã tạo một ứng dụng Blackjack cho iPhone. Nó chiếm 70 MB bộ nhớ khi nó chạy. Đây có phải là quá cao? Nó có vẻ hơi cao đối với tôi. Hoặc là điều này bình thường xem xét tôi đang sử dụng một số đồ họa/hoạt hình (cho thẻ, chip, vv)Ứng dụng iPhone của tôi sẽ mất bao nhiêu bộ nhớ?

+1

Bạn nên ổn ... http://stackoverflow.com/questions/21071311/how-much-memory-can-one-ios-app-use – PCoder123

+0

cảm ơn bạn đã trả lời! Tôi cũng tự hỏi nói chung nếu tôi đang sử dụng nhiều bộ nhớ hơn mức cần thiết cho loại ứng dụng đó? Tôi tò mò nếu mã hóa của tôi đã cực kỳ không hiệu quả từ một quan điểm sử dụng bộ nhớ. Bất kỳ ý tưởng nếu điều này là trên cao cấp cho một ứng dụng của loại này? cảm ơn. – mattman88

+0

Khi bạn nói rằng bạn đang sử dụng hình ảnh động, bạn có nghĩa là rất nhiều tài nguyên đồ họa hay bạn chỉ có nghĩa là CoreAnimation cho công việc trên GPU? – Tommy

Trả lời

15

Ít đòi hỏi trò chơi hơn của bạn, như Tic Tac Toe, mất khoảng 10 MB. Tuy nhiên, bạn có hoạt ảnh. Tôi giả sử nó là hoạt hình 2D, vì trò chơi 3D mất khoảng 500 MB và những người nổi tiếng gần 1 GB.

Nếu không xem mã đang làm gì, có vẻ như nó nằm trong phạm vi được chấp nhận cho ứng dụng 2D Blackjack đẹp.

Điều đó đang được nói, sẽ không đau khi nhìn vào lời khuyên của Apple dành cho lowering an app's memory usage.

+0

Tuyệt vời, cảm ơn bạn rất nhiều! Chỉ có hoạt hình 2D. Tôi sẽ xem xét trang đó bạn đã đề xuất chắc chắn! – mattman88

8

Quan sát: sử dụng ít bộ nhớ hơn vì lợi ích của nó là không có lợi thế. Làm thế nào là có 500MB RAM không sử dụng tốt hơn so với 450mb?

Do kết quả của quan sát đó, một cơ chế chung được sử dụng trong iOS là NSCache. Đó là [khoảng] một bản đồ kết hợp sẽ giữ mọi thứ về trừ khi hoặc cho đến khi làm như vậy gây ra áp lực bộ nhớ quá mức. Đó là mô hình tương tự được sử dụng phổ biến hơn. Sử dụng những gì có sẵn trừ khi hoặc cho đến khi làm như vậy gây ra cho người khác một vấn đề. Đó là lý do tại sao cảnh báo bộ nhớ thấp tồn tại. Các bộ đệm như vậy được cả nhà phát triển và hệ thống sử dụng - ví dụ: cho mọi cuộc gọi đến [UIImage imageNamed:].

Ngoài ra, điều đó phụ thuộc vào nội dung của bạn, cách sắp xếp lượt xem của bạn và một loạt các yếu tố khác.

Một võng mạc iPhone 5S có độ phân giải 1136x640 pixel. Vì vậy, đó là khoảng 2.8mb dữ liệu. Bạn đề cập đến hình động: bạn có đủ tài sản khác nhau để thêm tối đa 25 màn hình hoạt ảnh không? Nếu vậy thì đó là 70mb.

Còn quan điểm của bạn thì sao? Bạn có giữ nhiều quan điểm độc lập về? Mỗi chế độ xem có CALayer trong các trường hợp bình thường có nghĩa là dấu chân GPU. Như với NSCache, bộ nhớ như vậy được giữ lại trừ khi áp lực bộ nhớ cho thấy cần phải làm khác (và thậm chí sau đó bất kỳ thứ gì là một phần của hệ thống phân cấp hiện tại đều phải giữ bộ nhớ của nó).

+3

Chà, 2.8mb dữ liệu của bạn có khá nhiều điểm, tôi chỉ thử nghiệm lại lần nữa và tôi có khoảng 30 màn hình hoạt ảnh và ứng dụng của tôi chiếm khoảng 80mb ram. yêu thích học những điều mới. cảm ơn! – mattman88

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