Chúng tôi đang sử dụng các phantomj để chạy trang kiểm tra qunit của chúng tôi trên máy chủ xây dựng TFS của chúng tôi. phiên bản của chúng ta về runner thử nghiệm được xây dựng từ bên dưới ví dụPhantomjs chết do mức tiêu thụ bộ nhớ cao
https://github.com/ariya/phantomjs/blob/master/examples/run-qunit.js
Trong một khoảng thời số thời điểm kiểm tra tăng từ hàng trăm đến vài ngàn và trên phantomjs ngày đẹp trời bắt đầu rơi. Nó nghĩa đen chết nói rằng tải lên các bãi chứa và khi bạn nhìn thấy các bãi nó 0kb !!
Khi chúng tôi xem xét kỹ hơn về trình thám hiểm quy trình, chúng tôi nhận thấy rằng mức tiêu thụ bộ nhớ của các phantomj tiếp tục tăng lên khi các ảo ảnh đang chạy thử nghiệm và cuối cùng bị hỏng ở đâu đó 833MB.
Có cùng một lượng bộ nhớ đang được Chrome và IE sử dụng! Và có-có thử nghiệm của chúng tôi đã bị rò rỉ bộ nhớ: (Chúng tôi đã cố định nó, sử dụng bộ nhớ được giảm 50% trên chrome và IE và chúng tôi dự kiến các phantomj sẽ xử lý nó ngay bây giờ. tiêu thụ.
http://phantomjs.org/api/webpage/method/close.html
Theo tài liệu trên phantomjs phiên đống phân bổ chỉ trên gần? có thể đó là lý do tại sao kiểm tra cố định của chúng tôi tiêu thụ ít bộ nhớ trên chrome nhưng không phantomjs? Và cuối cùng làm thế nào để sửa lỗi này? Làm thế nào để làm cho các phantomj giữ các đối tượng thu thập rác để thu gom phân vùng heap?
Cập nhật 1 - 07/28
Chúng tôi đã thực hiện một công việc. Tôi đã sửa đổi kịch bản của mình để thực thi mô-đun thử nghiệm của mình theo mô-đun. Trong vòng lặp sau khi thực hiện tất cả các thử nghiệm cho một mô-đun tôi gọi page.close để nó phát hành bộ nhớ cho mỗi mô-đun và không bao giờ tiếp tục xây dựng đống vật chết. Không đóng câu hỏi này kể từ khi một giải pháp của nó và không phải là một giải pháp. Hy vọng người sáng tạo sẽ sửa lỗi này đôi khi.
Những loại cấu trúc dữ liệu nào bạn đã tải về trang web của bạn tiêu thụ 833MB? Thật điên rồ! Tôi chưa bao giờ nghe nói về một ứng dụng web chiếm nhiều bộ nhớ. –
@CameronTinker Khi ứng dụng chạy độc lập, không quá 90MB và nó vẫn ở đó suốt đời. Một ứng dụng đơn của nó được xây dựng bằng cách sử dụng EmberJS. Tiêu thụ 833MB là trang Á hậu thử nghiệm qunit .. –