मैं अपने जाने पुस्तकालय रूपरेखा करने की कोशिश के साथ केवल एक लाइन को दर्शाता है।Golang रूपरेखा - top10 पता लगाने के लिए क्या किया जा रहा है ताकि ज्यादा ग में एक ही बात की तुलना में धीमी ++ का कारण है, 100%
मैं,
func BenchmarkFile(t *testing.B) {
tmpFile, err := ioutil.TempFile("", TMP_FILE_PREFIX)
fw, err := NewFile(tmpFile.Name())
text := []byte("testing")
for i := 0; i < b.N; i++ {
_, err = fw.Write(text)
}
fw.Close()
}
NewFile जो हमारे द्विआधारी प्रतिनिधित्व करने के लिए डेटा encodes अपने कस्टम लेखक वापसी सरल बेंचमार्क है यहां तक कि उन्हें सेक, और सिस्टम फाइल करने के लिए लिखें।
रनिंग go test -bench . -memprofile mem.out -cpuprofile cpu.out
मैं विश्लेषण करने के अलावा प्राप्त
PASS
BenchmarkFile-16 2000000000 0.20 ns/op
ok .../writer/iowriter 9.074s
यह
# go tool pprof cpu.out
Entering interactive mode (type "help" for commands)
(pprof) top10
930ms of 930ms total ( 100%)
flat flat% sum% cum cum%
930ms 100% 100% 930ms 100%
(pprof)
मैं भी example.go एप्लिकेशन जो मेरे लेखक उपयोग कर रहा है लिखने की कोशिश, और pprof.StartCPUProfile(f)
जोड़ने के रूप में http://blog.golang.org/profiling-go-programs में लेकिन साथ दिखाया गया है एक ही परिणाम।
मैं गलत क्या कर रहा हूँ, और मैं कैसे निर्धारित कर सकते हैं मेरी lib की टोंटी क्या है? अग्रिम धन्यवाद
तुम क्यों प्रयोग कर रहे हैं "i <1000"? बेंचमार्क को बीएन फ़ील्ड का उपयोग करना चाहिए या वे सही परिणाम नहीं देंगे, क्योंकि प्रत्येक बेंचमार्क फ़ंक्शन को बीएन के विभिन्न मानों के साथ संभावित रूप से कई बार कहा जाता है। – nussjustin
ठीक है, मैं ठीक कर देंगे कि – sejvlond