drop decor/pool.go
using sync.Pool to feed strconv.AppendFloat has negligible performance gain if at all.
Vladimir Bauer
3 years ago
| 22 | 22 |
}
|
| 23 | 23 |
}
|
| 24 | 24 |
|
| 25 | |
p := bytesPool.Get().(*[]byte)
|
| 26 | |
b := strconv.AppendFloat(*p, float64(s), 'f', prec, 64)
|
|
25 |
b := strconv.AppendFloat(make([]byte, 0, 32), float64(s), 'f', prec, 64)
|
| 27 | 26 |
if st.Flag(' ') {
|
| 28 | 27 |
b = append(b, ' ', '%')
|
| 29 | 28 |
} else {
|
|
| 33 | 32 |
if err != nil {
|
| 34 | 33 |
panic(err)
|
| 35 | 34 |
}
|
| 36 | |
bytesPool.Put(p)
|
| 37 | 35 |
}
|
| 38 | 36 |
|
| 39 | 37 |
// Percentage returns percentage decorator. It's a wrapper of NewPercentage.
|
| 0 | |
package decor
|
| 1 | |
|
| 2 | |
import "sync"
|
| 3 | |
|
| 4 | |
var bytesPool = sync.Pool{
|
| 5 | |
New: func() interface{} {
|
| 6 | |
b := make([]byte, 0, 32)
|
| 7 | |
return &b
|
| 8 | |
},
|
| 9 | |
}
|
| 48 | 48 |
unit = _iTiB
|
| 49 | 49 |
}
|
| 50 | 50 |
|
| 51 | |
p := bytesPool.Get().(*[]byte)
|
| 52 | |
b := strconv.AppendFloat(*p, float64(self)/float64(unit), 'f', prec, 64)
|
|
51 |
b := strconv.AppendFloat(make([]byte, 0, 32), float64(self)/float64(unit), 'f', prec, 64)
|
| 53 | 52 |
if st.Flag(' ') {
|
| 54 | 53 |
b = append(b, ' ')
|
| 55 | 54 |
}
|
|
| 58 | 57 |
if err != nil {
|
| 59 | 58 |
panic(err)
|
| 60 | 59 |
}
|
| 61 | |
bytesPool.Put(p)
|
| 62 | 60 |
}
|
| 63 | 61 |
|
| 64 | 62 |
const (
|
|
| 102 | 100 |
unit = _TB
|
| 103 | 101 |
}
|
| 104 | 102 |
|
| 105 | |
p := bytesPool.Get().(*[]byte)
|
| 106 | |
b := strconv.AppendFloat(*p, float64(self)/float64(unit), 'f', prec, 64)
|
|
103 |
b := strconv.AppendFloat(make([]byte, 0, 32), float64(self)/float64(unit), 'f', prec, 64)
|
| 107 | 104 |
if st.Flag(' ') {
|
| 108 | 105 |
b = append(b, ' ')
|
| 109 | 106 |
}
|
|
| 112 | 109 |
if err != nil {
|
| 113 | 110 |
panic(err)
|
| 114 | 111 |
}
|
| 115 | |
bytesPool.Put(p)
|
| 116 | 112 |
}
|