5

PhantomJs/CasperJSを実行するたびに転送されたデータの量を確認することはできますか?PhantomJS/CasperJSの使用量を確認/ログする

Phantom/Casperの各インスタンスには、instance_idが割り当てられています(インスタンスをスピンアップするPHP関数によって)。実行が完了した後、転送されるデータ量とinstance_idは、おそらくインスタンスを生成したPHP関数を介して、MySQLデータベースに挿入する必要があります。このようにして、個々のファントムの実行帯域幅をログに記録することができます。

多くのファントム/キャスターインスタンスが実行され、それぞれ1〜2分持続することがあります。

+0

は実り多いようです:http://www.google.com/?q=linux%20monitor%20network%20traffic%20per%20process – goat

答えて

3

データをキャプチャしようとすると、最も簡単で正確なアプローチは、コレクタとエミッタを可能な限り近づけることです。この場合、phantomjが必要なデータをキャプチャしてPHP関数に送ってinstance_idに関連付け、データベースのやりとりを行うことが理想的です。それは(少なくとも部分的に)できることになる。これは、検索されたすべてのリソースのサイズをキャプチャし、それらを合算して、あなたのPHPコードはそれで作業することができ、標準出力に結果を出してくれる

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(); 
}); 

は、ここに1つのアプローチです。これには、ヘッダーのサイズやPOSTアクティビティは含まれません。アプリケーションによっては、これで十分でしょう。うまくいけば、これはあなたに良いジャンプポイントを与える。

+1

gzip圧縮はカウントされないので、これは転送サイズを正確には要約しません。 –

関連する問題