2013-01-03 13 views
5

Czy można sprawdzić/zarejestrować ile danych zostało przesłanych podczas każdego uruchomienia PhantomJs/CasperJS?Sprawdź/zaloguj ile przepustowości PhantomJS/CasperJS użył

Każda instancja Phantom/Casper ma przydzieloną instance_id (przez funkcję PHP, która uruchomiła instancję). Po zakończeniu biegu ilość przesłanych danych i instance_id będzie musiała zostać wprowadzona do bazy danych MySQL, prawdopodobnie poprzez funkcję PHP, która zainicjowała instancję. W ten sposób można rejestrować wykorzystanie przepustowości poszczególnych przebiegów phantomjs.

Istnieje wiele instancji fantomowych/casperów, z których każda trwa minutę lub dwie.

+0

wydaje się być bardziej owocny: http://www.google.com/?q=linux%20monitor%20network%20traffic%20per%20process – goat

Odpowiedz

3

Najprostszym i najdokładniejszym podejściem podczas próby przechwytywania danych jest uzyskanie kolektora i emitera jak najbliżej. W takim przypadku byłoby idealnie, gdyby phantomjs mógł przechwycić potrzebne dane i wysłać je z powrotem do funkcji PHP, aby powiązać je z identyfikatorem instance_id i wykonać interakcję z bazą danych. Okazało się, że może (przynajmniej częściowo).

Oto jeden sposób:

var page = require('webpage').create(); 
var bytesReceived = 0; 

page.onResourceReceived = function (res) { 
    if (res.bodySize) { 
     bytesReceived += res.bodySize; 
    } 
}; 

page.open("http://www.google.com", function (status) { 
    console.log(bytesReceived); 
    phantom.exit(); 
}); 

Ten oddaje wielkość wszystkich zasobów pobranych, dodaje je do góry, i wypluwa wynik na standardowe wyjście, gdzie Twój kod PHP jest w stanie pracować z nim. Nie obejmuje to rozmiaru nagłówków ani żadnej aktywności POST. W zależności od aplikacji może to wystarczyć. Jeśli nie, to mam nadzieję, że da ci to dobry punkt wyjścia. Wydaje się, że:

+1

Nie można dokładnie podsumować przesłanego rozmiaru, ponieważ kompresja gzip nie jest liczona. –

Powiązane problemy