mirror of
https://github.com/v2fly/v2ray-core
synced 2024-02-27 03:18:06 +00:00
* Optimize rand.Intn(65536) to rand.Int31() >> 15, with ~20% performance improvement. * Optimize rand.Intn(65536) to rand.rand.Int63() >> 47 * Remove rand.Seed call duplicate with original source code Co-authored-by: Chinsyo <chinsyo@sina.cn>
51 lines
727 B
Go
51 lines
727 B
Go
package dice_test
|
|
|
|
import (
|
|
"math/rand"
|
|
"testing"
|
|
|
|
. "v2ray.com/core/common/dice"
|
|
)
|
|
|
|
func BenchmarkRoll1(b *testing.B) {
|
|
for i := 0; i < b.N; i++ {
|
|
Roll(1)
|
|
}
|
|
}
|
|
|
|
func BenchmarkRoll20(b *testing.B) {
|
|
for i := 0; i < b.N; i++ {
|
|
Roll(20)
|
|
}
|
|
}
|
|
|
|
func BenchmarkIntn1(b *testing.B) {
|
|
for i := 0; i < b.N; i++ {
|
|
rand.Intn(1)
|
|
}
|
|
}
|
|
|
|
func BenchmarkIntn20(b *testing.B) {
|
|
for i := 0; i < b.N; i++ {
|
|
rand.Intn(20)
|
|
}
|
|
}
|
|
|
|
func BenchmarkInt31(b *testing.B) {
|
|
for i := 0; i < b.N; i++ {
|
|
_ = uint16(rand.Int31() >> 15)
|
|
}
|
|
}
|
|
|
|
func BenchmarkInt63(b *testing.B) {
|
|
for i := 0; i < b.N; i++ {
|
|
_ = uint16(rand.Int63() >> 47)
|
|
}
|
|
}
|
|
|
|
func BenchmarkIntn(b *testing.B) {
|
|
for i := 0; i < b.N; i++ {
|
|
_ = uint16(rand.Intn(65536))
|
|
}
|
|
}
|