Câu hỏi "Dirty" và "Resident" có nghĩa là gì liên quan đến bộ nhớ ảo?


Tôi đã bỏ chương trình CS tại trường đại học của mình ... Vậy, ai có thể hiểu đầy đủ về Khoa học Máy tính hãy nói với tôi: ý nghĩa của Dirty và Resident, như liên quan đến bộ nhớ ảo là gì? Và, đối với điểm thưởng, bộ nhớ ảo là gì? Tôi đang sử dụng công cụ Allocations / VM Tracker trong Công cụ để phân tích ứng dụng iOS.

*Dấu - cố gắng giải thích như thể bạn đang nói chuyện với một đứa trẻ 8 tuổi hoặc một đứa trẻ hoàn toàn im lặng. Cảm ơn các bạn.


34
2018-03-03 02:40


gốc


1 cho thái độ lành mạnh! Đây là cách để có được câu trả lời hữu ích, thanx :) - JOM


Các câu trả lời:


"Bộ nhớ bẩn" là bộ nhớ đã được thay đổi bằng cách nào đó - đó là bộ nhớ mà bộ thu gom rác phải xem xét, và sau đó quyết định làm gì với nó. Tùy thuộc vào cách bạn xây dựng cấu trúc dữ liệu của mình, bạn có thể khiến bộ thu gom rác đánh dấu rất nhiều bộ nhớ bị bẩn, mỗi chu kỳ thu gom rác mất nhiều thời gian hơn yêu cầu. Giữ con số này thấp có nghĩa là chương trình của bạn sẽ chạy nhanh hơn, và sẽ ít có khả năng bị tạm dừng thu gom rác đáng chú ý. Đối với hầu hết mọi người, điều này không thực sự là một mối quan tâm.

"Bộ nhớ thường trú" là bộ nhớ hiện được tải vào bộ nhớ RAM - bộ nhớ thực sự đang được sử dụng. Trong khi ứng dụng của bạn có thể yêu cầu nhiều mục khác nhau được theo dõi trong bộ nhớ, nó chỉ có thể yêu cầu một tập con nhỏ có thể truy cập tại bất kỳ thời điểm nào. Giữ số này thấp có nghĩa là ứng dụng của bạn có thời gian tải thấp hơn, phát tốt với người khác và giảm nguy cơ bạn sẽ hết bộ nhớ và bị lỗi khi ứng dụng của bạn đang chạy. Đây có lẽ là số bạn nên chú ý, hầu hết thời gian.

"Bộ nhớ ảo" là tổng số lượng dữ liệu mà ứng dụng của bạn đang theo dõi tại bất kỳ thời điểm nào. Con số này khác với những gì đang được sử dụng (những gì đang được sử dụng được đánh dấu là "Bộ nhớ thường trú") - hệ thống sẽ giữ dữ liệu được theo dõi nhưng không được ứng dụng của bạn sử dụng ở đâu đó ngoài bộ nhớ thực. Nó có thể, ví dụ, lưu nó vào đĩa.


44
2018-03-03 02:49



Trong khi điều này là đúng cho Mac OS X, không có bộ nhớ ảo hoặc trao đổi vào đĩa trên iOS. - Steve Madsen
Các nhà phát triển được khuyến khích gián tiếp làm việc như thể cả hai không có ở đó. Tuy nhiên, họ đang có, họ chỉ không hoàn toàn nổi bật, và hiện không trực tiếp có sẵn cho các nhà phát triển / ứng dụng (có nghĩa là, không phải không có jail-breaking iphone của bạn). - blueberryfields
Ứng dụng không bao giờ được thông báo về hoạt động hoán đổi, bất kể hệ điều hành. Sự khác biệt giữa Mac OS X và iOS từ góc độ của nhà phát triển là chúng tôi có thể hơi cẩu thả trên OS X, biết rằng a) có nhiều RAM hệ thống hơn và b) nếu chúng tôi phân bổ quá nhiều, công cụ có thể được hoán đổi trước hệ thống gặp rắc rối thực sự. Điều đó không đúng trên iOS và hệ thống sẽ giết ứng dụng của bạn nếu bạn phân bổ quá mức. Như để nếu "bộ nhớ ảo" và "trao đổi" là kỹ thuật có thể trên iOS, tôi không nghi ngờ rằng nó là, nhưng tôi sẽ ngạc nhiên nếu iOS bao giờ hoán đổi bất cứ điều gì. - Steve Madsen


WWDC 2013 - 410 Khắc phục sự cố bộ nhớ Giải thích điều này một cách độc đáo. Cũng đáng xem vì nó cũng giải thích một số ý nghĩa thực tế của bộ nhớ bẩn, cư trú và ảo.


3
2018-01-30 17:24



Tôi nghĩ bạn có thể có nghĩa là WWDC 2013... - pxpgraphics
@pxpgraphics - Có bạn là chính xác, tôi cũng cố định liên kết. - Robert