2014-04-30 37 views
10

Tôi đang sử dụng các j ảo để kiểm tra truy cập trang web, điều này chạy xấp xỉ 350 lần trong khoảng nửa giờ. Tôi sau đó chạy webalizer đối với máy chủ để kiểm tra truy cập trang.PhantomJS lưu bộ nhớ cache

Máy khách ảo của tôi nằm bên trong 1 thể hiện của js ảo vì vậy về cơ bản nó hoạt động theo nghĩa là khi một khách hàng đã mở trang web khởi động ứng dụng khách tiếp theo, tất cả đều có địa chỉ IP cá nhân và địa chỉ MAC trong suốt.

Tuy nhiên những gì tôi tìm thấy trong webalizer là trong khi tôi nhận được 350 lượt truy cập vào máy chủ, tôi chỉ nhận được 1 lần truy cập mỗi phiên bản của ma ảo tôi chạy trên một số tệp css và các tệp khác. Vì vậy, tôi đã đưa ra ý tưởng của nó bộ nhớ đệm khách hàng với nhau.

Tôi đã cố gắng chạy --max-disk-cache-size = 0 khi gọi phiên bản ảo js nhưng vẫn thấy nó hoạt động giống nhau.

Có ai đã từng trải nghiệm như cũ không?

Trả lời

19

Chạy page.clearMemoryCache(); trước page.open có thể xóa bộ nhớ cache.

Nó được đo trong this issue và hoạt động tốt trong PhantomJS 2.0.

+0

Vấn đề cũng đề cập rằng vấn đề có thể vẫn còn - đó có phải là sự thật không? –

+2

Không hoạt động. Tôi nhận được '[TypeError: page.clearMemoryCache không phải là một hàm]' – TetraDev

-1

Không có cách nào để xóa bộ nhớ cache (bộ nhớ hoặc đĩa). Một vấn đề được mở trên github here kể từ một vài tháng và tôi vẫn hy vọng điều này sẽ được phát hành trong tương lai.

Cách duy nhất này là bắt đầu một phiên bản mới của phantomj không có bộ nhớ cache trên đĩa.

PhantomJs là trình duyệt không đầu, vì vậy hãy xem xét một phiên bản PhantomJS là một người dùng duy nhất. Việc mở 100 lần cùng một trang web trong trình duyệt ưa thích của bạn sẽ giảm 100 lần mọi tài nguyên trên trang web của bạn? Không, đây chính xác là cách thức hoạt động của PhantomJS.

+3

Tôi đã tìm thấy bản sửa lỗi, hầu hết mã đã được triển khai đầy đủ tuy nhiên tùy chọn page.settings.clearMemoryCaches = true không tuân theo [link] (https://github.com/ant0ine/phantomjs/commit/91cf016a1cd6e91a11a3516bb2366fd04ff235a9) để có được quyền truy cập vào mã, hoạt động một điều trị. Ý tưởng sử dụng cùng một thể hiện ảo để điều khiển nhiều máy khách, nó sử dụng ít bộ nhớ hơn! – Charabon

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