我正在尝试优化我的遗传算法。这使用了很多随机数选择(随机突变等)。
我决定使用 CPU 分析器:
import (
"runtime/pprof"
)
var cpuprofile = flag.String("cpuprofile", "", "write cpu profile to file")
func main() {
if *cpuprofile != "" {
fmt.Println(*cpuprofile)
f, err := os.Create(*cpuprofile)
if err != nil {
log.Fatal(err)
}
_ = pprof.StartCPUProfile(f)
defer pprof.StopCPUProfile()
}
***app logic***
我很惊讶地发现,CPU使用率的最大贡献者之一是,特别是因为我在应用程序中的任何时候都没有使用过线程或goroutines。sync.(*Mutex).Unlock

一些挖掘显示,瓶颈是由数学/兰特中的默认源同步引起的。
有没有一种更快的方法来生成具有不同步/阻塞的函数的随机数?
真正的随机性/准确的伪随机性对于这个应用程序来说并不那么重要,但是如果我没有连续多次获得完全相同的数字,那将是首选。
千万里不及你
德玛西亚99
守着星空守着你
随时随地看视频慕课网APP
相关分类