Heim >Backend-Entwicklung >Golang >Das Go-Test-Flag „-run -' führt Tests viel schneller aus
PHP-Editor Apple hat bei der Einführung des Testframeworks Go Test darauf hingewiesen, dass die Verwendung des Flags „-run –“ die Geschwindigkeit der Testausführung erheblich verbessern kann. Dieses Flag weist Go test an, nur die Testfunktion und keinen Beispielcode auszuführen. Dadurch kann das Test-Framework unnötige Initialisierungs- und Bereinigungsprozesse überspringen, was zu einer schnelleren Testausführung führt. Für Entwickler, die häufig Tests durchführen müssen, ist diese Technik sehr nützlich und kann die Arbeitseffizienz verbessern.
Ich habe mir einige Benchmarks unter https://github.com/roaringbitmap/roaring angesehen
Beim Ausführen eines bestimmten Benchmarks mit -run -
(wie in den Kommentaren erwähnt):
go test -bench benchmarknexts -benchmem -run -
scheint schneller ausgeführt zu werden, zumindest die Ausführung ohne go test -bench benchmarknexts -benchmem -run -
似乎执行得更快,至少在没有 -run -
scheint einen anfänglichen Overhead von 5 Sekunden zu verursachen, der auch dargestellt wird:
==roaring== {1,2,3,4,5,100,1000} {3,4,1000} {} Cardinality: 7 Contains 3? true 1 3 4 5 1000 Wrote 22 bytes I wrote the content to a byte stream and read it back. size before run optimize: 1810 bytes, and after: 38 bytes.
Da die -run
-Flagge Tests basierend auf einem Regex-Muster ausführt, scheint hier etwas ausgeschlossen zu sein, aber was zum Teufel ist, dass beide denselben Test ausführen, der einzige Unterschied ist der anfängliche Overhead.
go test „-run -“-Flag führt den Test viel schneller aus
Dies ist das erwartete Ergebnis. Es geht schneller, wenn Sie keine Tests ausführen.
Um zu sehen, was ausgeführt wird, ändern Sie -v
选项添加到 go test
Ausführen.
Keine Tests durchgeführt:
go clean -testcache && go test -bench benchmarknexts -benchmem -run - -v
Alle Tests durchführen:
go clean -testcache && go test -bench benchmarknexts -benchmem -v`
Oder, da -run .
allen Tests entspricht,
go clean -testcache && go test -bench benchmarknexts -benchmem -run . -v
go ist ein Tool zum Verwalten von Go-Quellcode.
Logo testen
-run regexp Run only those tests, examples, and fuzz tests matching the regular expression. -v Verbose output: log all tests as they are run.
Cache erstellen und testen
Der Befehl go speichert auch erfolgreiche Pakettestergebnisse zwischen. Weitere Informationen finden Sie unter „Hilfe zum Testen“. Durch Ausführen von „go clean -testcache“ werden alle zwischengespeicherten Testergebnisse gelöscht (aber nicht die zwischengespeicherten Build-Ergebnisse).
Das obige ist der detaillierte Inhalt vonDas Go-Test-Flag „-run -' führt Tests viel schneller aus. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!