added more piece picker stats

This commit is contained in:
Arvid Norberg 2011-02-07 00:51:20 +00:00
parent 3d616f894e
commit 5df4e7edd9
5 changed files with 66 additions and 13 deletions

View File

@ -872,9 +872,16 @@ namespace libtorrent
int m_connreset_peers;
// the number of times the piece picker fell through
// to the end-game mode
int m_end_game_piece_picks;
int m_strict_end_game_piece_picks;
int m_end_game_piece_picker_blocks;
int m_strict_end_game_piece_picker_blocks;
int m_piece_picker_blocks;
int m_piece_picks;
int m_reject_piece_picks;
int m_unchoke_piece_picks;
int m_incoming_redundant_piece_picks;
int m_incoming_piece_picks;
int m_end_game_piece_picks;
int m_snubbed_piece_picks;
#endif
// each second tick the timer takes a little

View File

@ -56,6 +56,6 @@ gen_report('disk', ['disk write queued bytes', 'disk block buffers'])
gen_report('peers_upload', ['peers up interested', 'peers up unchoked', 'peers up requests'])
gen_report('peers_download', ['peers down interesting', 'peers down unchoked', 'peers down requests'])
gen_report('peer_errors', ['error peers', 'peer disconnects', 'peers eof', 'peers connection reset'])
gen_report('end_game', ['end game piece picks', 'strict end game piece picks', 'valid strict end game piece picks'])
gen_report('piece_picker', ['end game piece picker blocks', 'strict end game piece picker blocks', 'piece picker blocks', 'piece picks', 'reject piece picks', 'unchoked piece picks', 'incoming redundant piece picks', 'incoming piece picks', 'end game piece picks', 'snubbed piece picks'])
gen_report('bandwidth', ['% failed payload bytes', '% wasted payload bytes', '% protocol bytes'])

View File

@ -1395,6 +1395,9 @@ namespace libtorrent
if (m_request_queue.empty() && m_download_queue.size() < 2)
{
#ifdef TORRENT_STATS
++m_ses.m_reject_piece_picks;
#endif
request_a_block(*t, *this);
send_block_requests();
}
@ -1486,6 +1489,9 @@ namespace libtorrent
if (is_interesting())
{
#ifdef TORRENT_STATS
++m_ses.m_unchoke_piece_picks;
#endif
request_a_block(*t, *this);
send_block_requests();
}
@ -2378,6 +2384,9 @@ namespace libtorrent
if (!m_download_queue.empty())
m_requested = now;
#ifdef TORRENT_STATS
++m_ses.m_incoming_redundant_piece_picks;
#endif
request_a_block(*t, *this);
send_block_requests();
return;
@ -2451,6 +2460,9 @@ namespace libtorrent
, p.piece, _1));
}
#ifdef TORRENT_STATS
++m_ses.m_incoming_piece_picks;
#endif
request_a_block(*t, *this);
send_block_requests();
}
@ -3860,6 +3872,9 @@ namespace libtorrent
// might not be any unrequested blocks anymore, so
// we should try to pick another block to see
// if we can pick a busy one
#ifdef TORRENT_STATS
++m_ses.m_end_game_piece_picks;
#endif
request_a_block(*t, *this);
if (m_disconnecting) return;
}
@ -4127,6 +4142,9 @@ namespace libtorrent
// picking the same block again, stalling the
// same piece indefinitely.
m_desired_queue_size = 2;
#ifdef TORRENT_STATS
++m_ses.m_snubbed_piece_picks;
#endif
request_a_block(*t, *this);
m_desired_queue_size = 1;

View File

@ -314,7 +314,7 @@ namespace libtorrent
}
#ifdef TORRENT_STATS
++ses.m_end_game_piece_picks;
++ses.m_end_game_piece_picker_blocks;
#endif
// if the number of pieces we have + the number of pieces
@ -327,7 +327,7 @@ namespace libtorrent
return;
#ifdef TORRENT_STATS
++ses.m_strict_end_game_piece_picks;
++ses.m_strict_end_game_piece_picker_blocks;
#endif
// if all blocks has the same number of peers on them

View File

@ -805,9 +805,16 @@ namespace aux {
":peer disconnects:peers eof:peers connection reset"
":outstanding requests:outstanding end-game requests"
":outstanding writing blocks"
":end game piece picks"
":strict end game piece picks"
":end game piece picker blocks"
":strict end game piece picker blocks"
":piece picker blocks"
":piece picks"
":reject piece picks"
":unchoke piece picks"
":incoming redundant piece picks"
":incoming piece picks"
":end game piece picks"
":snubbed piece picks"
":% failed payload bytes"
":% wasted payload bytes"
":% protocol bytes"
@ -817,9 +824,16 @@ namespace aux {
m_disconnected_peers = 0;
m_eof_peers = 0;
m_connreset_peers = 0;
m_end_game_piece_picks = 0;
m_strict_end_game_piece_picks = 0;
m_end_game_piece_picker_blocks = 0;
m_strict_end_game_piece_picker_blocks = 0;
m_piece_picker_blocks = 0;
m_piece_picks = 0;
m_reject_piece_picks = 0;
m_unchoke_piece_picks = 0;
m_incoming_redundant_piece_picks = 0;
m_incoming_piece_picks = 0;
m_end_game_piece_picks = 0;
m_snubbed_piece_picks = 0;
#endif
#ifdef TORRENT_DISK_STATS
m_buffer_usage_logger.open("buffer_stats.log", std::ios::trunc);
@ -2682,9 +2696,16 @@ namespace aux {
<< outstanding_requests << "\t"
<< outstanding_end_game_requests << "\t"
<< outstanding_write_blocks << "\t"
<< m_end_game_piece_picks << "\t"
<< m_strict_end_game_piece_picks << "\t"
<< m_end_game_piece_picker_blocks << "\t"
<< m_strict_end_game_piece_picker_blocks << "\t"
<< m_piece_picker_blocks << "\t"
<< m_piece_picks << "\t"
<< m_reject_piece_picks << "\t"
<< m_unchoke_piece_picks << "\t"
<< m_incoming_redundant_piece_picks << "\t"
<< m_incoming_piece_picks << "\t"
<< m_end_game_piece_picks << "\t"
<< m_snubbed_piece_picks << "\t"
<< (float(m_total_failed_bytes) * 100.f / m_stat.total_payload_download()) << "\t"
<< (float(m_total_redundant_bytes) * 100.f / m_stat.total_payload_download()) << "\t"
<< (float(m_stat.total_protocol_download()) * 100.f / m_stat.total_download()) << "\t"
@ -2693,9 +2714,16 @@ namespace aux {
m_disconnected_peers = 0;
m_eof_peers = 0;
m_connreset_peers = 0;
m_end_game_piece_picks = 0;
m_strict_end_game_piece_picks = 0;
m_end_game_piece_picker_blocks = 0;
m_strict_end_game_piece_picker_blocks = 0;
m_piece_picker_blocks = 0;
m_piece_picks = 0;
m_reject_piece_picks = 0;
m_unchoke_piece_picks = 0;
m_incoming_redundant_piece_picks = 0;
m_incoming_piece_picks = 0;
m_end_game_piece_picks = 0;
m_snubbed_piece_picks = 0;
#endif
// --------------------------------------------------------------