Các trình duyệt cũng giống như con người - họ già đi, họ nhận được cồng kềnh, và họ nhận được đã bỏ cho các mô hình trẻ hơn và gọn gàng hơn.
Firefox không chỉ là một trình duyệt, nó là một hệ sinh thái. Trong khi tôi cảm thấy các phiên bản gần đây khá cồng kềnh, sản phẩm cốt lõi nói chung là ổn định.
Tuy nhiên, firefox là một hệ sinh thái/nền tảng cho:
1) Badly viết plug-ins
2) Badly viết mã JavaScript mà thực hiện bên trong nó.
3) Adobe flash làm nền tảng cho video hạng nặng và các tập lệnh quảng cáo kém được viết như 'nhấn Osama bin Laden với vịt để giảm lãi suất thế chấp và nhận iPod * miễn phí (tham gia bắt buộc).
4) Trình phát đa phương tiện nhanh và khác.
5) Một số mã Java được nhúng.
Mô tả rò rỉ bộ nhớ cho thấy tập lệnh chạy amok hoặc công cụ của bên thứ ba yêu cầu thêm bộ nhớ. Nếu bạn đã từng chạy Flash trên máy Mac, điều đó gần như được cho cùng với việc sử dụng CPU 90%.
Mục tiêu của hầu hết các ngôn ngữ lập trình không phải là để cứu bạn mà còn cung cấp cho bạn các công cụ để tự cứu mình. Bạn có thể viết mã xấu và cồng kềnh với rò rỉ bộ nhớ bằng bất kỳ ngôn ngữ nào, bao gồm cả những người có bộ sưu tập rác.Các công cụ của bên thứ ba thường không được kiểm tra tốt như chính nền tảng. Các trang web cố gắng làm quá nhiều cũng không phổ biến.
Nếu bạn muốn thực hiện một thử nghiệm để chứng minh điều này, hãy tìm một mac với Firefox và truy cập một trang web được viết tốt như Stack Overflow và dành một giờ. Việc sử dụng bộ nhớ của bạn không nên phát triển nhiều. Sau đó, dành 5 phút truy cập vào các trang ngẫu nhiên trên Myspace.
Bây giờ hãy để tôi cố gắng và giải đáp thắc mắc của bạn dựa trên dự đoán của tôi kể từ khi tôi không quen thuộc với mã nguồn
- Khi tôi đóng tất cả các tab, tại sao không sử dụng bộ nhớ đi tất cả các cách xuống?
Trong khi mỗi trường hợp trình duyệt là một quá trình độc lập với bộ nhớ riêng, các tab trong một cửa sổ đơn đều nằm trong cùng một quy trình. Firefox được sử dụng để có một số loại bộ nhớ đệm trong bộ nhớ và chỉ đóng một tab không xóa thông tin liên quan ngay lập tức từ bộ nhớ cache trong bộ nhớ. Nếu bạn mở lại một tab vào cùng một trang web, bạn có thể có hiệu suất tốt hơn. Có một số tùy chọn nâng cao để cho phép bạn tắt nó, giống như browser.cache.memory.enable. Hoặc chỉ cần tìm kiếm để tắt bộ nhớ cache.
* Why is there no limits on extensions/themes/plugins memory usage?
Vì lý do tương tự Windows hoặc Linux không có quy trình kiểm duyệt trên các ứng dụng bạn có thể chạy trên chúng. Đó là một môi trường mở và bạn giả định rủi ro. Nếu bạn muốn một môi trường nơi mà các ứng dụng và phần mở rộng được 'xác nhận', Apple có thể là cách để đi :)
* Why does the memory usage increase if it's left open for long periods of time?
Không phải tất cả các tính toán và hành động trong một kịch bản có biểu hiện thị giác. Một tập lệnh có thể thực hiện một số nội dung trong nền (như yêu cầu thêm tài liệu, tìm nạp trước nội dung, chỉ là lỗi) ngay cả khi bạn không thấy.
* Why are memory leaks so difficult to find and fix?
Đó là về kế toán. Hãy suy nghĩ về mọi món đồ bạn từng vay (thậm chí là một cây bút) hoặc một người nào đó mượn từ bạn trong suốt cuộc đời của bạn. Tất cả chúng có được tính không? Rò rỉ bộ nhớ cũng giống như vậy (bạn mượn bộ nhớ từ hệ thống), ngoại trừ việc bạn chuyển các mục xung quanh. Sau đó nhìn vào những thứ trên bàn làm việc của bạn, bạn có để lại bất cứ thứ gì xung quanh bởi vì 'bạn có thể cần nó ngay' mặc dù bạn có thể sẽ không? cùng một câu chuyện.
câu hỏi này hơi rộng. Firefox bị rò rỉ bộ nhớ, tốt nhất là bạn nên đọc về chủ đề đó. Các tab đóng không nhất thiết phải giải phóng bộ nhớ đã được cấp phát cho tab đó. –
và câu hỏi lập trình của bạn là? – KevinDTimm
@KevinDTimm đó là viên đạn cuối cùng trong danh sách – David