change some bandwidth calculation

This commit is contained in:
ffdfgdfg
2019-11-23 00:42:46 +08:00
parent 9bb8230fc1
commit 405f41f87f
3 changed files with 31 additions and 25 deletions

View File

@@ -115,34 +115,35 @@ func (s *Mux) writeSession() {
}
func (s *Mux) packBuf() {
buffer := common.BuffPool.Get()
//buffer := common.BuffPool.Get()
for {
if s.IsClose {
break
}
buffer.Reset()
//buffer.Reset()
pack := s.writeQueue.Pop()
if s.IsClose {
break
}
//buffer := common.BuffPool.Get()
err := pack.Pack(buffer)
err := pack.Pack(s.conn)
common.MuxPack.Put(pack)
if err != nil {
logs.Error("mux: pack err", err)
common.BuffPool.Put(buffer)
//common.BuffPool.Put(buffer)
s.Close()
break
}
//logs.Warn(buffer.String())
//s.bufQueue.Push(buffer)
l := buffer.Len()
n, err := buffer.WriteTo(s.conn)
//l := buffer.Len()
//n, err := buffer.WriteTo(s.conn)
//common.BuffPool.Put(buffer)
if err != nil || int(n) != l {
logs.Error("mux: close from write session fail ", err, n, l)
s.Close()
break
}
//if err != nil || int(n) != l {
// logs.Error("mux: close from write session fail ", err, n, l)
// s.Close()
// break
//}
}
}
@@ -385,24 +386,24 @@ func (s *Mux) getId() (id int32) {
}
type bandwidth struct {
readBandwidth uint64 // store in bits, but it's float64
readStart time.Time
lastReadStart time.Time
bufLength uint16
readBandwidth uint64 // store in bits, but it's float64
bufLength uint32
}
func (Self *bandwidth) StartRead() {
if Self.readStart.IsZero() {
Self.readStart = time.Now()
}
if Self.bufLength >= 16384 {
if Self.bufLength >= 3072000 {
Self.lastReadStart, Self.readStart = Self.readStart, time.Now()
Self.calcBandWidth()
}
}
func (Self *bandwidth) SetCopySize(n uint16) {
Self.bufLength += n
Self.bufLength += uint32(n)
}
func (Self *bandwidth) calcBandWidth() {
@@ -417,6 +418,7 @@ func (Self *bandwidth) Get() (bw float64) {
if bw <= 0 {
bw = 100
}
//logs.Warn(bw)
return
}