2016-07-07 13 views
12

Tôi đang viết ứng dụng máy chủ web sử dụng NodeJS 6.3.0. ứng dụng được thực thi với thông số --expose-gc, vì vậy tôi có chức năng global.gc(). câu hỏi là làm thế nào tôi có thể biết khi nào việc thực hiện thủ công của bộ thu gom rác đã hoàn thành.khi tôi thực hiện thủ công bộ thu gom rác, làm thế nào tôi có thể biết khi nào nó hoàn tất?

là global.gc() một hàm đồng bộ và điều đó có nghĩa là dòng mã kế tiếp sẽ được thực thi khi hàm hoàn thành nhiệm vụ?

Tôi có thể theo dõi bằng cách nào đó khi thực hiện xong bộ thu gom rác cụ thể của tôi không?

cảm ơn!

Trả lời

8

Vì vậy, tôi đã tìm thấy câu trả lời cho this.

Nếu bạn khởi chạy quy trình nút bằng cờ --expose-gc, bạn có thể gọi global.gc() để buộc nút chạy bộ sưu tập rác. Hãy nhớ rằng tất cả các thực thi khác trong ứng dụng nút của bạn bị tạm dừng cho đến khi GC hoàn tất, do đó, không sử dụng nó quá thường xuyên hoặc nó sẽ ảnh hưởng đến hiệu suất.

This cũng có một nhận xét.

Chạy global.gc() theo cách thủ công (được bật bằng nút --expose_gc) sẽ giảm mức sử dụng bộ nhớ xuống 50MB mỗi lần và tạm dừng ứng dụng trong khoảng 400ms.

Vì vậy, có vẻ như nó đồng bộ và chặn cho đến khi hoàn tất.

Các vấn đề liên quan