Điều gì xảy ra khi tôi đóng tất cả các cửa sổ của ứng dụng trên OSX?


8

Tôi đã quen với Windows, nơi các ứng dụng biến mất khỏi khay tác vụ, menu Alt+ Tab, v.v. khi tôi đóng cửa sổ cuối cùng của chúng; vì vậy tôi hơi ngạc nhiên khi biểu tượng của ứng dụng vẫn nằm trong Dock và trong Command+ Tabwindows của tôi .

Bộ nhớ của máy tính, việc sử dụng CPU, v.v. có thay đổi giữa trạng thái đó và khi tôi đóng hoàn toàn (ví dụ Command+ Q) một ứng dụng không? (Tôi có OS X 10.8 nếu có vấn đề.)

Câu trả lời:


12

Không có sự đồng thuận về việc ứng dụng phải thoát khi bạn đóng cửa sổ cuối cùng hoặc nếu ứng dụng tiếp tục chạy, do đó, quyết định được đưa ra cho mỗi nhà phát triển để quyết định dựa trên ứng dụng. Điều đúng là việc thoát khỏi một ứng dụng sẽ giải phóng các tài nguyên mà nó đã sử dụng - ngay cả khi một số tệp và mã vẫn được lưu trữ trong RAM hoặc bộ đệm cho đến khi các cửa hàng đó bị xóa hoặc sử dụng để lưu trữ các ứng dụng và tệp khác sau đó.

Hơn nữa, không có hạn chế nào cấm mã hóa xấu, ăn cắp bộ nhớ, sử dụng CPU khi không có tác vụ thực sự nào, do đó cũng thay đổi tùy theo từng trường hợp.

Cả Windows và OS X đều có khả năng lập lịch rất tốt, hệ thống phân trang, điều khiển luồng, v.v ... và CPU đều giống nhau về việc tắt lõi và giảm / tăng tần số dựa trên tải để tiết kiệm năng lượng và đưa ra " turbo boost "khi chỉ có một lõi đang thực thi một luồng.

OS X đang bắt đầu để các ứng dụng báo hiệu rằng chúng hỗ trợ chấm dứt đột ngột - để HĐH có thể xử lý chấm dứt tự động, chấm dứt đột ngột và lưu tài liệu tự động (phiên bản cộng) cho nhà phát triển ứng dụng. Vì vậy, ngay cả khi bạn đã bảo HĐH chạy chương trình, nó có thể và sẽ quyết định "bỏ" quá trình để nó không tiêu tốn tài nguyên trong khi bạn đang làm những việc khác với máy tính.

Cuối cùng, với PowerNap trên phần cứng OS X, ranh giới giữa alseep và awake bắt đầu mờ đi khi hệ thống thức giấc một phần để thực hiện các tác vụ mạng định kỳ làm cho OS X khác một chút so với UNIX và Windows truyền thống về suy nghĩ về ứng dụng và sử dụng tài nguyên.

Đọc thêm:


1
Mặc dù đó không phải là một quy tắc khó, các ứng dụng dựa trên tài liệu thường vẫn chạy khi tất cả các cửa sổ của chúng bị đóng (nghĩ là TextEdit hoặc Mail), trong khi các ứng dụng một cửa sổ thường thoát khi một cửa sổ của chúng bị đóng (nghĩ Tùy chọn hệ thống hoặc App Store) . Lý do cho điều này nếu một ứng dụng chỉ bao gồm một cửa sổ, có thể bạn sẽ không thể làm gì với nó mà không mở cửa sổ đó (tất nhiên cũng có ngoại lệ, như iTunes).
daGUY

3

Câu trả lời đã được đưa ra ở đây là một câu trả lời hay và rất chính xác, nhưng tôi chỉ muốn chia nó thành các điều khoản của giáo dân cho bạn.

Một số chương trình chấm dứt khi bạn đóng tất cả cửa sổ của chúng, một số khác thì không. Ngoài ra, một số chương trình có tùy chọn trong cài đặt nơi bạn, người dùng, có thể quyết định xem bạn có muốn chương trình thoát khi cửa sổ cuối cùng được đóng không.

Liên quan đến việc sử dụng bộ nhớ, OS X sử dụng quản lý bộ nhớ được thiết kế để phân bổ nhiều bộ nhớ nhất cho ứng dụng (hoạt động) quan trọng nhất, đồng thời hạn chế số lượng bộ nhớ được sử dụng bởi các ứng dụng không phải là ứng dụng đang hoạt động. Tuy nhiên, như đã được đề cập, việc này hoạt động tốt như thế nào phụ thuộc phần lớn vào việc mỗi chương trình được mã hóa tốt như thế nào.


1
Thú vị - Tôi chưa bao giờ nghe nói về hệ thống VM thích các cửa sổ đang hoạt động. +1 để biết thêm câu trả lời trực tiếp ngắn. Nếu bạn có thể liên kết đến các chi tiết về tối ưu hóa bộ nhớ, điều đó thật tuyệt vời.
bmike
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.