Tôi đã chỉ cố gắng để buộc GC và nó có vẻ như vậy không phụ thuộc vào trình duyệt thực tế tương đối tốt về làm như vậy là để chạy đoạn mã sau:
function gc(max) {
var arr = [];
for (var i = 0; i < max; i++) {
arr.push(i);
}
return arr.length;
}
for (var i = 0; ; i++) {
// repeat until you have enough:
gc(Math.pow(2, i));
}
Tất nhiên, một vấn đề là biết khi nào nên ngừng gọi gc (...): cho một trong những nhu cầu một số cách bên ngoài để phát hiện GC là thành công hơn. Trong trường hợp của tôi, tôi đã sử dụng WebView nhúng và tôi thực sự có thể kiểm tra trước khi buộc vòng tiếp theo với mảng lớn hơn.
Nguồn
2014-11-10 17:09:38
Bạn đang cố gắng giải quyết vấn đề gì? Việc thu gom rác xảy ra trên chính nó một cách tự động ngay sau khi chuỗi JS của bạn kết thúc luồng thực hiện hiện tại của nó. Tại sao bạn nghĩ rằng bạn cần chạy bộ sưu tập rác một cách rõ ràng? – jfriend00
Ditto với những gì jfriend00 đã nói và bạn đã gắn thẻ thẻ này là [rò rỉ bộ nhớ], bạn có đang cố gắng tìm rò rỉ bộ nhớ không? Vấn đề thực tế bạn cần phải giải quyết là gì? –
Xin chào, vấn đề của tôi là tôi có một trò chơi HTML5 tạo ra rất nhiều rác và tôi muốn gọi GC trong các tình huống được kiểm soát (như menu tạm dừng) – xus