Add some variables to track fillBuffer effectiveness
This commit is contained in:
parent
016b238cc5
commit
d934ec7e30
|
@ -346,12 +346,15 @@ var (
|
||||||
)
|
)
|
||||||
|
|
||||||
func (cn *connection) fillWriteBuffer(msg func(pp.Message) bool) {
|
func (cn *connection) fillWriteBuffer(msg func(pp.Message) bool) {
|
||||||
|
numFillBuffers.Add(1)
|
||||||
rs, i := cn.desiredRequestState()
|
rs, i := cn.desiredRequestState()
|
||||||
if !cn.SetInterested(i, msg) {
|
if !cn.SetInterested(i, msg) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
sentCancels := false
|
||||||
for r := range cn.requests {
|
for r := range cn.requests {
|
||||||
if _, ok := rs[r]; !ok {
|
if _, ok := rs[r]; !ok {
|
||||||
|
sentCancels = true
|
||||||
delete(cn.requests, r)
|
delete(cn.requests, r)
|
||||||
// log.Printf("%p: cancelling request: %v", cn, r)
|
// log.Printf("%p: cancelling request: %v", cn, r)
|
||||||
if !msg(pp.Message{
|
if !msg(pp.Message{
|
||||||
|
@ -364,12 +367,17 @@ func (cn *connection) fillWriteBuffer(msg func(pp.Message) bool) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if sentCancels {
|
||||||
|
fillBufferSentCancels.Add(1)
|
||||||
|
}
|
||||||
|
sentRequests := false
|
||||||
for r := range rs {
|
for r := range rs {
|
||||||
if _, ok := cn.requests[r]; !ok {
|
if _, ok := cn.requests[r]; !ok {
|
||||||
if cn.requests == nil {
|
if cn.requests == nil {
|
||||||
cn.requests = make(map[request]struct{}, cn.nominalMaxRequests())
|
cn.requests = make(map[request]struct{}, cn.nominalMaxRequests())
|
||||||
}
|
}
|
||||||
cn.requests[r] = struct{}{}
|
cn.requests[r] = struct{}{}
|
||||||
|
sentRequests = true
|
||||||
// log.Printf("%p: requesting %v", cn, r)
|
// log.Printf("%p: requesting %v", cn, r)
|
||||||
if !msg(pp.Message{
|
if !msg(pp.Message{
|
||||||
Type: pp.Request,
|
Type: pp.Request,
|
||||||
|
@ -381,6 +389,9 @@ func (cn *connection) fillWriteBuffer(msg func(pp.Message) bool) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if sentRequests {
|
||||||
|
fillBufferSentRequests.Add(1)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Writes buffers to the socket from the write channel.
|
// Writes buffers to the socket from the write channel.
|
||||||
|
|
|
@ -93,4 +93,8 @@ var (
|
||||||
pieceInclinationsReused = expvar.NewInt("pieceInclinationsReused")
|
pieceInclinationsReused = expvar.NewInt("pieceInclinationsReused")
|
||||||
pieceInclinationsNew = expvar.NewInt("pieceInclinationsNew")
|
pieceInclinationsNew = expvar.NewInt("pieceInclinationsNew")
|
||||||
pieceInclinationsPut = expvar.NewInt("pieceInclinationsPut")
|
pieceInclinationsPut = expvar.NewInt("pieceInclinationsPut")
|
||||||
|
|
||||||
|
fillBufferSentCancels = expvar.NewInt("fillBufferSentCancels")
|
||||||
|
fillBufferSentRequests = expvar.NewInt("fillBufferSentRequests")
|
||||||
|
numFillBuffers = expvar.NewInt("numFillBuffers")
|
||||||
)
|
)
|
||||||
|
|
Loading…
Reference in New Issue