Heim > Artikel > Backend-Entwicklung > Detaillierte Einführung in die Golang-Bereitstellungs- und Debugging-Methoden
In den letzten Jahren wurde Golang als immer beliebter werdende Sprache immer häufiger verwendet und erregte die Aufmerksamkeit vieler Entwickler. Für Entwickler, die Golang noch nicht kennen, sind Bereitstellung und Debugging jedoch schwierig zu lösende Probleme. In diesem Artikel werden die Bereitstellungs- und Debugging-Methoden von Golang ausführlich vorgestellt.
1. Bereitstellung
Golang ist eine kompilierte Sprache und der geschriebene Code muss kompiliert werden in eine ausführbare Datei zum Ausführen. Es gibt zwei Arten der Kompilierung: statische Kompilierung und dynamische Kompilierung. Durch die statische Kompilierung werden die vom Programm benötigten Bibliotheken in eine ausführbare Datei gepackt, die zur Laufzeit jedoch nicht auf externe Bibliotheken angewiesen ist der ausführbaren Datei ist kleiner, erfordert jedoch die Abhängigkeit von externen Bibliotheken.
Statische Kompilierung:
$ go build -o main main.go
Dynamische Kompilierung:
$ go build -o main main.go -ldflags "-linkmode=external"
Unter diesen stellt der Parameter -linkmode=external die Bibliotheksdateien dar, die für die dynamische Verknüpfung erforderlich sind.
In Golang ist das Standardpaketverwaltungstool go mod, daher müssen Sie Umgebungsvariablen festlegen, um den Codespeicher anzugeben Pfad und Download-Quelle. In Linux-Systemen können Umgebungsvariablen durch Ändern der Datei ~/.bash_profile festgelegt werden.
export GO111MODULE=on
export GOPROXY=https://goproxy.cn,direct
export GOSUMDB=sum.golang.google.cn
Unter anderem bedeutet GO111MODULE die Verwendung von go mod; GOPROXY bedeutet die verwendete Download-Quelle, wenn go get überprüft wird;
Docker kann uns dabei helfen, Golang-Programme in Images zu packen, um sie auf jeder Plattform einfach bereitstellen zu können. Zuerst müssen Sie eine Docker-Datei schreiben:
FROM golang:1.15.0-alpine
WORKDIR /app
COPY .
RUN go build -o main .# 🎜🎜 #CMD ["/app/main"]
$ docker run -p 8080:8080 myapp
"net/http" _ "net/http/pprof")func main( ) {#🎜🎜 #
go func() { http.ListenAndServe("0.0.0.0:6060", nil) }() // your code here
}
Unter anderem muss pprof beim Importieren nicht aufgerufen werden, es registriert die Route automatisch. Führen Sie dann den folgenden Befehl aus:
$ go tool pprof http://localhost:6060/debug/pprof/profile
Dieser Befehl druckt die CPU-Nutzungsanalyse im aus Konsolenergebnis.
DebuggerGDB-Debugger:
Sie müssen beim Kompilieren den Parameter -g angeben, um Debugging-Informationen hinzuzufügen, und dann ausführen Folgender Befehl: # 🎜🎜#
$ gdb myapp(gdb) break main.main
(gdb) run
Hier ist der Haltepunkt als Beispiel. Wenn die Ausführung den Haltepunkt erreicht, stoppt die Ausführung und wechselt in den Debugging-Modus.
$ dlv debug myapp
Dieser Befehl startet den Debugger und öffnet eine REPL-Schnittstelle (Read-Eval-Print Loop), die zum Debuggen verwendet werden kann.
Zusammenfassung
In diesem Artikel werden die Bereitstellungs- und Debugging-Methoden von Golang vorgestellt: Kompilierung, Umgebungsvariablen, Docker, pprof, GDB und Delve. Ich hoffe, dass es Entwicklern helfen kann, Golang-Fähigkeiten besser zu beherrschen.
Das obige ist der detaillierte Inhalt vonDetaillierte Einführung in die Golang-Bereitstellungs- und Debugging-Methoden. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!