கோ உடன் மூன்றாவது நாள்
அனைவருக்கும் வணக்கம், இன்று எனது மூன்றாம் நாள் கற்றல்களை பதிவு செய்கிறேன்.
இன்று நாம் கோ இல் நிரல்களை தரப்படுத்தல் பற்றி பார்ப்போம்.
தரப்படுத்தல் கோ இன் உள்ளமைக்கப்பட்ட அம்சமாகும். இது சோதனை
தொகுப்பின் கீழ் வருகிறது.
தொடரியல்
ஒரு குறிப்பிட்ட தொடரியல் விதிப்படி சிறப்பு செயல்பாட்டை உருவாக்குவதன் மூலம் தரப்படுத்தல் அம்சங்களைப் பயன்படுத்தலாம். இது testing.B
என்ற வகையில் சில பயன்பாடுகளை வெளிப்படுத்துகிறது.
தரப்படுத்தல் செயல்பாடின் வடிவம் கீழ்காணும்படி இருக்கும்,
func BenchmarkFunctionName(b *testing.B)
சில தகவல்கள்
இந்த தரப்படுத்தல் செயல்பாடுகளை -bench
கொடியுடன் go test
கட்டளையை சேர்த்து பயன்படுத்தலாம் . தரப்படுத்தல் செயல்பாடுகள் தொடர்ச்சியாக இயங்கும் தன்மை உடையவை.
கட்டளை உதாரணம்
go test -bench=.
தரப்படுத்தல் செயல்பாட்டைப் பயன்படுத்துதல்
கோ இல் for
லூப்பை தரப்படுத்துவதற்கான எளிய உதாரணத்தைப் பார்ப்போம்.
இதற்கு இரண்டு கோப்புகள் தேவை.
- loop_test.go
- loop.go , மற்றும் வழக்கம் போல்
go.mod
கோப்பும் தேவை.
// loop_test.go
package iteration
import "testing"
func TestRepeat(t *testing.T){
got := Repeat("a")
want := "aaaaa"
if got != want {
t.Errorf("Expected %q, but got %q", want, got)
}
}
// தரப்படுத்தல் செயல்பாடு
func BenchmarkRepeat(b *testing.B){
for i := 0; i < b.N; i++ {
Repeat("a")
}
}
மேலே உள்ள நிரல் துணுக்கில் BenchmarkRepeat
எனப்படும் தரப்படுத்தல் செயல்பாடு உள்ளது, இதில் சோதனை
தொகுப்பில் உள்ள B
வகையைச் சுட்டிக்காட்டும் செயல்பாட்டு வாதமாக b
உள்ளது.
செயல்பாட்டுத் தொகுதியின் உள்ளே, நிரல் b.N
முறைகளுக்கு இயங்கும் for
லூப்பைக் கொண்டுள்ளது. இந்த b.N
நம் பயன்பாட்டிற்கான சோதனை
தொகுப்பால் வழங்கப்படுகிறது.
// loop.go
package iteration
const repeatCount = 5
func Repeat(letter string) string {
var resString string
// for loop
for i := 0; i < repeatCount; i++ {
resString += letter
}
return resString
}
இது கோ இல் எழுதப்பட்ட ஒரு எளிய நிரலாகும். இந்த நிரல் ஒரு ஒற்றை எழுத்தை ஐந்து முறை கோர்த்து ஒரு சொற்றொடரை உருவாக்கும். இது 5 முறை சுழன்று, ஏற்கனவே உள்ள சரத்தில்(முதலில் வெற்று சரம்) எழுத்தைச் சேர்க்கிறது. இதை ஒரு வெளிப்பாடு சாரமாக உருவாக்கி நமக்கு வழங்குகிறது.
இந்த இரண்டு கோப்புகளையும் சேமித்த பிறகு வேலை அடைவில் go test -bench=.
கட்டளையை தட்டச்சு செய்யவும்.
இது தரப்படுத்தல் செயல்பாட்டை இயக்கி கீழ் உள்ளதை வெளியீட்டாக அளிக்கிறது.
goos: windows
goarch: amd64
pkg: loop.go
cpu: Intel(R) Core(TM) iX-XXXXXX CPU @ X.XXGHz
BenchmarkRepeat-4 5288964 225.6 ns/op
PASS
ok loop.go 2.807s
வெளியீட்டில் இயக்கு தளம், கணினி அமைப்பு கட்டமைப்பு, நாம் சோதிக்கும்/தரப்படுத்தல் செய்யும் (loop.go) தொகுப்பு, மையச் செயலகம் பற்றிய தகவல் மற்றும் நிரல் இயங்கும் வேகம், அதாவது 225.6 நானோ விநாடிகள்ஆகியவை உள்ளன.
இன்றைக்கு இது போதும் என்று நினைக்கின்றேன்!
அணிகள் மற்றும் ஸ்லைசிங் பற்றி இன்று கற்றுக்கொண்டேன், அதை பற்றி நாளை பதிவு செய்கிறேன். ரேஞ்ச்
லூப்பிங் மற்றும் வேறு சில விஷயங்களைப் பற்றியும் நாளை பதிவு செய்ய நினைக்கின்றேன்.
உங்களிடமிருந்து விடைப்பெருவது,
~கோரீ08