Làm thế nào một phân vùng trao đổi / tập tin sẽ ảnh hưởng đến hệ thống?


20

Một số người bạn nói với tôi rằng điện thoại Android của họ có rất ít bộ nhớ (<100 MB) cho các ứng dụng thông thường, bởi vì HĐH và một số dịch vụ không thể giết được chiếm phần lớn RAM. Ví dụ: một điện thoại có 512MB chỉ hiển thị 90 MB bộ nhớ khả dụng, do đó chỉ 2-3 ứng dụng có thể chạy cùng một lúc.

Tôi tự hỏi nếu việc tạo một phân vùng / tập tin trao đổi sẽ giúp ích, nhưng tôi đã thấy nhiều ý kiến ​​trái chiều trên web và tôi không biết phải làm gì. Đây là câu hỏi của tôi:

(1) Sẽ có nhiều trang bộ nhớ không được sử dụng thường xuyên để trao đổi, đặc biệt là trong HĐH và các dịch vụ không thể giết được này?

(2) Làm thế nào để hoán đổi các trang bộ nhớ nhỏ sẽ làm giảm tuổi thọ bộ nhớ flash? Đèn flash (hoặc thẻ SD?) Có tự động cân bằng hao mòn không?

(3) Trao đổi có thực sự giúp hiệu suất khi chạy nhiều ứng dụng không? Tôi giả sử nếu câu trả lời cho (1) là có, nó sẽ như vậy.

(4) Việc ghi vào flash có quá chậm và do đó ảnh hưởng đến khả năng phản hồi khi trao đổi xảy ra không?

(5) Có đúng là Android giữ cơ chế hoán đổi từ nhân Linux, miễn là có phân vùng / tệp hoán đổi, nó sẽ thực hiện trao đổi mà không cần cấu hình thêm?

Cảm ơn vì đã đọc.

Câu trả lời:


8

Tôi không nghĩ sẽ có nhiều lợi ích khi hoán đổi cho Android, vì Vòng đời ứng dụng Android là một hình thức hoán đổi cao cấp hơn nhiều.

(1) Sẽ có nhiều trang bộ nhớ không được sử dụng thường xuyên để trao đổi, đặc biệt là trong HĐH và các dịch vụ không thể giết được này?

Bạn không thể trao đổi nhân hệ điều hành ngay cả trong Desktop Linux và Android đã giết các dịch vụ khi cần thêm RAM. Nếu nhà cung cấp thiết bị của bạn vẫn khăng khăng rằng bạn phải có các dịch vụ vô dụng chạy mọi lúc, thì hãy root thiết bị của bạn.

(2) Làm thế nào để hoán đổi các trang bộ nhớ nhỏ sẽ làm giảm tuổi thọ bộ nhớ flash? Đèn flash (hoặc thẻ SD?) Có tự động cân bằng hao mòn không?

Ngay cả khi thẻ SD không bị hao mòn, việc tráo đổi sẽ gây tổn thương khá nhiều.

(3) Trao đổi có thực sự giúp hiệu suất khi chạy nhiều ứng dụng không? Tôi giả sử nếu câu trả lời cho (1) là có, nó sẽ như vậy.

Không phải trong bối cảnh của Android. Không giống như hệ điều hành truyền thống sẽ tiếp tục cố gắng xử lý các tiến trình như bạn yêu cầu, Android sẽ buộc Kill Kill các quy trình cũ hơn, không sử dụng và lấy lại bộ nhớ của chúng; việc tiêu diệt này diễn ra nhanh chóng vì các ứng dụng sẽ lưu trạng thái của chúng khi bạn chuyển đổi tác vụ.

(4) Việc ghi vào flash có quá chậm và do đó ảnh hưởng đến khả năng phản hồi khi trao đổi xảy ra không?

Có lẽ, có lẽ là không. Sẽ cần điểm chuẩn cho điều đó.

(5) Có đúng là Android giữ cơ chế hoán đổi từ nhân Linux, miễn là có phân vùng / tệp hoán đổi, nó sẽ thực hiện trao đổi mà không cần cấu hình thêm?

Tôi không biết liệu Android có giữ cơ chế hoán đổi hay không, nhưng ngay cả khi nó thực hiện (hoặc nếu bạn biên dịch kernel của riêng mình), bạn vẫn sẽ cần một số cấu hình. Nó thường chỉ có một fstabtệp trỏ đến tệp hoán đổi và thực hiện swapon -a.

Trong thực tế, tôi có lý do tại sao việc hoán đổi có thể thực sự ảnh hưởng đến hiệu suất: nó ngăn chặn Vòng đời ứng dụng, sơ đồ quản lý bộ nhớ của Android, hoạt động chính xác.


Cảm ơn câu trả lời. Tôi vẫn có câu hỏi mặc dù. Trên Samsung Fascinate, 10 dịch vụ không thể giết được chiếm khoảng 110M bộ nhớ. Có 22 dịch vụ tiêu diệt khác đang chạy nhưng "Chạy ứng dụng" cho thấy không có ứng dụng nào đang chạy. Đó là điện thoại của bạn tôi và tôi không biết chính xác cô ấy đã làm gì trước đây, nhưng có vẻ như nhiều khả năng nhiều dịch vụ / ứng dụng có thể chạy cùng một lúc. Tôi không nghĩ tất cả các dịch vụ / ứng dụng nền này sử dụng tất cả các trang họ yêu cầu khi chúng bắt đầu. Ngoài ra, lưu trạng thái ứng dụng + tải lại và khởi động lại ứng dụng + trạng thái khôi phục cũng sẽ chậm.
thường xanh

Một cách khác để nghĩ về vấn đề này là: giả sử tuổi thọ flash không phải là vấn đề, Android có nên đổi chỗ không? Nếu không, sự khác biệt chính giữa ứng dụng Android và ứng dụng máy tính để bàn khiến việc hoán đổi không hữu ích trên Android là gì? Tôi không nghĩ Android Life Cycle hoạt động cho các ứng dụng máy tính để bàn / máy chủ.
thường xanh

@evergreen: Trạng thái ứng dụng được lưu khi ứng dụng chuyển sang nền (ví dụ: khi người dùng nhấn home để chuyển tác vụ). Sau này, khi một số ứng dụng khác cần bộ nhớ, các ứng dụng cũ hoặc dịch vụ nền sẽ bị hủy bỏ (FK thực tế không mất thời gian). Điều này có nghĩa là giết nhiệm vụ là ngay lập tức, vì trạng thái ứng dụng đã được lưu từ lâu. Khi bạn tải lại một ứng dụng đã có trong bộ nhớ, bạn sẽ có thời gian tải lại nhanh nhất; nhưng nếu ứng dụng đã được tải, thì ứng dụng cần thực hiện tải lại đầy đủ (đó là tình huống tương tự với việc hoán đổi)
Lie Ryan

@evergreen: nếu bạn sử dụng một trình diệt tác vụ, thì bạn sẽ buộc các ứng dụng dỡ tải và bạn sẽ luôn phải tải lại đầy đủ, thay vì tải lại nhanh khi ứng dụng vẫn còn trong bộ nhớ. Nếu bạn sử dụng tệp / phân vùng trao đổi, các ứng dụng (cũ hơn) sẽ bị tráo đổi và việc khôi phục sẽ mất gần như cùng một lượng công việc như tải lại đầy đủ. Ngoại trừ: với tải lại đầy đủ, nhà phát triển ứng dụng đã tách dữ liệu liên tục với dữ liệu tạm thời và có thể tối ưu hóa những gì cần lưu và những gì không cải thiện lưu trữ. Trong khi với việc khôi phục trao đổi, bạn không để lại nhà phát triển ứng dụng và trao đổi mọi thứ.
Lie Ryan

@evergreen: Ngay cả khi giả sử tuổi thọ flash không phải là vấn đề, Android không nên thực hiện trao đổi, vì Vòng đời ứng dụng thực hiện công việc tốt hơn. Vòng đời Android được thiết kế cho môi trường bị giới hạn bộ nhớ, trong môi trường máy tính để bàn và máy chủ, bạn có một lượng bộ nhớ khổng lồ và người dùng thực hiện đa nhiệm nhiều hơn và họ không hy vọng các chương trình nền sẽ bị HĐH giết chết. Điểm yếu của Vòng đời Android là nó yêu cầu hỗ trợ ứng dụng. Ứng dụng phải sẵn sàng để bị giết bất cứ lúc nào và phải lưu trạng thái tại các điểm được xác định trước. Sự phức tạp như vậy là không liên quan đến các ứng dụng máy tính để bàn.
Lie Ryan

5

Chắc chắn có một lợi ích để trao đổi, mặc dù những gì mọi người khác trên Internet sẽ nói với bạn. Hãy thử và cảm nhận bản thân mình. Theo kinh nghiệm, trên G1 hoặc điện thoại khác có bộ nhớ thấp, trao đổi giúp điện thoại chạy tốt hơn và nhanh hơn.

Có, Android đã tích hợp sẵn "quản lý tác vụ", nhưng nó không tốt lắm. Nó thường giết chết các tiến trình khi hết bộ nhớ và các ứng dụng dự kiến ​​sẽ lưu trạng thái của chúng bằng cách sử dụng " Gói " để khi bạn khởi động lại chúng, chúng sẽ khởi động lại ở cùng trạng thái.

Một khi Android xác định rằng nó cần phải loại bỏ một quá trình, nó sẽ thực hiện việc này một cách tàn nhẫn, đơn giản là giết chết nó. Sau đó, hạt nhân có thể lấy lại ngay lập tức tất cả các tài nguyên cần thiết cho quá trình, mà không cần dựa vào ứng dụng đó được viết tốt và đáp ứng yêu cầu lịch sự để thoát. Việc cho phép kernel lấy lại ngay lập tức các tài nguyên ứng dụng giúp việc tránh các tình huống bộ nhớ trở nên dễ dàng hơn rất nhiều.

Điều này sẽ là tuyệt vời nếu nó thực sự hoạt động, và sẽ tốt hơn so với trao đổi bừa bãi. Nhưng các ứng dụng không thực sự lưu trạng thái của chúng; họ chỉ lưu lượng thông tin tối thiểu để quay lại trạng thái đó. (Và một số ứng dụng thậm chí không bận tâm để làm điều này.) Quay trở lại trạng thái đó cần có thời gian. Vì trao đổi thực sự lưu toàn bộ trạng thái của ứng dụng, mà chỉ cần tải lại, nó làm cho việc chuyển đổi giữa các ứng dụng nhanh hơn nhiều.

Ví dụ, nếu bạn chuyển sang một ứng dụng khác từ trình duyệt, trình duyệt hầu như luôn bị giết và sau đó nó phải tải lại toàn bộ trang từ Internet khi bạn chuyển trở lại. Việc này mất nhiều thời gian hơn là tải lại trạng thái từ trao đổi, lãng phí tiền của bạn nếu bạn đang sử dụng gói dữ liệu và gây ra sự cố trạng thái khi trang web động.

Nhiều ứng dụng mất nhiều thời gian hơn để khởi động so với bình thường hoặc không thực sự trở lại trạng thái tương tự khi chúng được khởi động lại, vì vậy việc hoán đổi chúng hoạt động tốt hơn.

Tôi đoán những người hài lòng với hệ thống chứng khoán sử dụng điện thoại của họ khác đi.

Tôi có nên sử dụng phân vùng trao đổi với Cyanogenmod?


Nếu bạn để nó trong Vòng đời, quyết định của ứng dụng là lưu trữ thêm dữ liệu để cải thiện hiệu suất (ví dụ: các trang web được tải). Nếu bạn sử dụng trao đổi, đó là quyết định của HĐH, nhưng HĐH không ở vị trí tốt nhất để xác định những gì nên lưu và những gì không lưu để tối ưu hóa hiệu suất tốt nhất, do đó, nó phải lưu và khôi phục mọi thứ. Trình duyệt không tải lại các trang từ Internet nếu bạn chuyển đổi tác vụ, tôi thường mở Trình duyệt, chuyển sang một loạt các trò chơi nặng và các hoạt động khác và quay lại Trình duyệt với trang cuối cùng của tôi với mọi thứ được tải ngay lập tức.
Lie Ryan

Đúng. Không hệ thống nào là tối ưu, nhưng trao đổi là tốt hơn cho hầu hết các ứng dụng. Trình duyệt chỉ tải lại trang nếu nó bị giết trước khi bạn mở lại. Trên điện thoại có bộ nhớ thấp, nó hầu như sẽ luôn bị giết.
endolith

@LieRyan - "trở lại Trình duyệt với trang cuối cùng của tôi với mọi thứ được tải ngay lập tức" bạn có khôi phục vị trí cuộn trên các trang đã mở sau khi tải lại không? Đó là những gì Chrome không làm (mặc dù tôi rất thích trình duyệt này), điều này rất đáng tiếc khi bạn ngừng đọc trên một số trang web khá đăng nhập trước khi chuyển sang, nói, hãy gọi ...
kerim

2

Tôi có một chiếc Spice mi-435 (chỉ được bán ở Ấn Độ) có RAM chỉ 340M. Chết tiệt, các tập tin trao đổi giúp rất nhiều. Điện thoại của tôi chạy ICS với RAM thấp như vậy và chắc chắn đã nhập nhiều trạng thái bộ nhớ và ở đó tệp hoán đổi giúp ích rất nhiều. Tất cả các trạng thái ứng dụng được chuyển sang trao đổi khi không sử dụng. Điều này mang lại cho phòng điện thoại của tôi nhiều ứng dụng hơn và các ứng dụng đói RAM để chạy mượt mà với độ trễ thấp hơn nhiều so với trước đây. Mặc dù có một vấn đề khi tôi mở ứng dụng tôi đã sử dụng trước đây. Phải mất thời gian để tải trạng thái của nó vì SD chậm hơn nhiều so với RAM tốc độ cao trên tàu. Nhưng, tùy chọn trao đổi tốt hơn cho RAM ít hơn. Tôi khuyên bạn nên trao đổi phân vùng cho RAM dưới 512M nhưng không quá 512M.

Hy vọng nó hữu ích.


1

Hoán đổi tập tin giúp ngay cả trên các hệ thống có RAM cao hơn. Máy tính bảng lõi tứ 1gb ram 7 inch của tôi có được sự gia tăng đa tác vụ chính từ việc chuyển đổi trong một trao đổi 2gb, trên thẻ micro sd uhs-1. Và tất nhiên, giá của bộ nhớ giảm xuống nhanh chóng, và thậm chí ở mức ghi liên tục, nand flash được cho là sẽ tồn tại nhiều năm.

Về cơ bản, tôi cho rằng, vì sự khác biệt về hiệu năng là rất triệt để, nên có lẽ bất cứ ai có ít hơn một lượng RAM thực sự lớn đều phải làm điều này. Trong thực tế, nó có thể là một tùy chọn tiêu chuẩn trong Android (cùng với bộ đệm ứng dụng lớn hơn và bộ đệm internet có kích thước phù hợp).

Ý tôi là bạn có một micro sd 64-128gb (uhs-1), hoặc thậm chí là uhs-2 xuất hiện trong năm nay, cộng với một nand nội bộ 16-64gb, thường là "nand" nhanh, là một loại ssd nguyên thủy hoặc ngay cả SSD, như được sử dụng trên các cửa sổ - bạn không thể lấp đầy không gian tốc độ cao với nhiều thứ. Tốc độ chỉ thực sự phát ra với video hoặc tải ứng dụng vào bộ nhớ - đó chính xác là việc sử dụng ở đây.

Tất nhiên, lý tưởng nhất là các nhà sản xuất sẽ tập trung nhiều hơn vào RAM, hơn là độ phân giải hoặc lõi bổ sung, vì rõ ràng tốc độ hệ thống được hưởng lợi rất nhiều từ ram cao hơn - và có lẽ họ cũng nên tăng tốc độ lưu trữ nội bộ (như chuyển sang hệ thống loại ssd đầy đủ hoặc tối thiểu là "nhanh". Nhưng trong thời gian đó, trong khi độ phân giải cao có xu hướng gây ra sự thiếu hụt RAM trong tất cả các thiết bị, một tệp hoán đổi và lưu vào bộ nhớ cache bên ngoài hợp lý rất có ý nghĩa.

Thật vậy, thật tuyệt khi thấy một số trình duyệt giữ bộ nhớ đệm đầy đủ hơn, hầu hết các trình duyệt đều chậm, hoặc tính năng thấp, hiếm khi nhanh và đầy đủ tính năng - và đó là một phần vì không gian cho bộ đệm ứng dụng trên ổ đĩa trong là rất nhỏ. Chúng được thiết kế để hoạt động trong một môi trường lưu trữ và bộ nhớ thấp, và toàn bộ câu chuyện đang thay đổi. Ngay cả khi ram không bị cắt nhiều như mong muốn, thì việc lưu trữ chắc chắn là như vậy, và nó có thể khá nhanh chóng theo tiêu chuẩn UHS-1 (hoặc uhs-2 được phát hành trong năm nay), ngay cả khi nó không " nhanh "hoặc ssd.

Và chi phí của bộ nhớ ngoài, thực sự là đậu phộng, ngay cả đối với công suất cao hơn uhs-1. Ít nhất một 64gb uhs-1 là hoàn toàn hợp lý (50 đô la tôi đang ở, nhưng nó sẽ ít USD hơn), rẻ hơn nhiều so với thiết bị, và về cơ bản là 32 gb.

Thực sự có rất nhiều bài học từ máy tính để bàn, đặc biệt là thông số kỹ thuật ngày càng cao hơn - liên kết hiệu suất chậm nhất đang tải từ bộ nhớ sang ram. Bạn càng có thể làm để giảm thiểu điều đó, thì tốt hơn.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.