Heim  >  Artikel  >  Backend-Entwicklung  >  Detaillierte Einführung in die Golang-Bereitstellungs- und Debugging-Methoden

Detaillierte Einführung in die Golang-Bereitstellungs- und Debugging-Methoden

PHPz
PHPzOriginal
2023-04-25 16:16:09755Durchsuche

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

  1. Kompilierung

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.

  1. Umgebungsvariablen

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;

  1. Docker

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"]

Unter anderem gibt FROM die Spiegelquelle an; WORKDIR gibt das Arbeitsverzeichnis an; RUN führt das aus Kompilierungsbefehl; CMD gibt den Befehl an.

Führen Sie dann den folgenden Befehl aus:

$ docker build -t myapp .

$ docker run -p 8080:8080 myapp

wobei -t den Labelnamen angibt; -p die Portzuordnung angibt.

2. Debugging

    Debugging-Tool
Golang verfügt über einen integrierten Satz von Debugging-Tools – Go-Tool pprof, kann uns bei der Analyse der CPU- und Speichernutzung helfen. Zuerst müssen Sie das pprof-Paket in den Code importieren und den Leistungsanalysecode hinzufügen:

import (

"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.

Debugger
  1. Wenn im Programm eine Ausnahme auftritt, können Sie diese mit dem Debugger debuggen. Es gibt viele Debugger in Golang. Hier sind zwei Typen:

GDB-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.

Delve Debugger:

Delve ist ein leistungsstarker Debugger, der Remote-Debugging und Netzwerk-Debugging unterstützt. Zuerst müssen Sie Delve installieren:

$ go get -u github.com/go-delve/delve/cmd/dlv

Führen Sie dann den folgenden Befehl aus, um den Debugger zu starten : #🎜🎜 #

$ 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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:So lernen Sie die Go-SpracheNächster Artikel:So lernen Sie die Go-Sprache