Pengenalan terperinci kepada kaedah penggunaan dan penyahpepijatan Golang

PHPz
Lepaskan: 2023-04-25 16:55:23
asal
759 orang telah melayarinya

Dalam beberapa tahun kebelakangan ini, Golang telah menjadi bahasa yang semakin popular dan aplikasinya semakin meluas, menarik perhatian ramai pembangun. Walau bagaimanapun, bagi pembangun yang baru menggunakan Golang, penggunaan dan penyahpepijatan merupakan masalah yang sukar untuk diselesaikan Artikel ini akan memperkenalkan kaedah penggunaan dan penyahpepijatan Golang secara terperinci.

1. Deployment

  1. Kompilasi

Golang ialah bahasa yang disusun dan kod bertulis perlu dihimpun ke dalam fail boleh laku sebelum ia boleh lari. Terdapat dua cara penyusunan: kompilasi statik dan kompilasi dinamik. Penyusunan statik akan membungkus perpustakaan yang diperlukan oleh program ke dalam fail boleh laku. Fail boleh laku bersaiz lebih besar, tetapi tidak perlu bergantung pada perpustakaan luaran pada masa jalan manakala kompilasi dinamik memerlukan pemautan dinamik fail perpustakaan pada masa jalan daripada fail boleh laku adalah Lebih Kecil, tetapi memerlukan pergantungan pada perpustakaan luaran.

Kompilasi statik:

$ go build -o main main.go

Kompilasi dinamik:

$ go build -o main.go -ldflags "-linkmode=external"

Antaranya, parameter -linkmode=external menunjukkan fail perpustakaan yang diperlukan untuk pemautan dinamik.

  1. Pembolehubah persekitaran

Di Golang, alat pengurusan pakej lalai ialah go mod, jadi anda perlu menetapkan pembolehubah persekitaran untuk menentukan laluan penyimpanan kod dan sumber muat turun. Dalam sistem Linux, pembolehubah persekitaran boleh ditetapkan dengan mengubah suai fail ~/.bash_profile.

eksport GO111MODULE=on
eksport GOPROXY=https://goproxy.cn,direct
eksport GOSUMDB=sum.golang.google.cn

Antaranya, GO111MODULE bermaksud menggunakan go mod;GOPROXY mewakili sumber muat turun yang digunakan semasa go get; GOSUMDB mewakili pengesahan sama ada pakej kod yang dimuat turun ialah versi yang dikeluarkan secara rasmi.

  1. Docker

Docker boleh membantu kami membungkus program Golang ke dalam imej untuk penggunaan mudah pada mana-mana platform. Mula-mula anda perlu menulis fail Docker:

DARI golang:1.15.0-alpine
WORKDIR /app
COPY .
RUN go build -o main .
CMD [" /app /main"]

Antaranya, FROM menentukan sumber imej; WORKDIR menentukan direktori kerja; COPY menyalin fail dalam folder semasa ke imej; RUN melaksanakan arahan kompilasi; CMD menentukan arahan berjalan .

Kemudian laksanakan arahan berikut:

$ docker build -t myapp .
$ docker run -p 8080:8080 myapp

Antaranya, -t menentukan nama label; -p menentukan pemetaan port.

2. Nyahpepijat

  1. Alat Nyahpepijat

Golang mempunyai set alat penyahpepijatan terbina dalam - go tool pprof, yang boleh membantu kami menganalisis CPU dan keadaan penggunaan memori. Mula-mula, anda perlu mengimport pakej pprof dalam kod dan menambah kod analisis prestasi:

import (

"net/http"
_ "net/http/pprof"
Salin selepas log masuk

)

func main() {

go func() {
    http.ListenAndServe("0.0.0.0:6060", nil)
}()
// your code here
Salin selepas log masuk

}

Antaranya, pprof tidak perlu dipanggil semasa mengimport, ia secara automatik akan mendaftar laluan. Kemudian laksanakan arahan berikut:

$ go tool pprof http://localhost:6060/debug/pprof/profile

Arahan ini akan mencetak hasil analisis penggunaan CPU dalam konsol.

  1. Penyahpepijat

Jika pengecualian berlaku dalam atur cara, anda boleh menggunakan penyahpepijat untuk nyahpepijatnya. Terdapat banyak penyahpepijat dalam Golang Berikut ialah dua jenis:

Penyahpepijat GDB:

Anda perlu menentukan parameter -g untuk menambah maklumat penyahpepijatan semasa menyusun, dan kemudian laksanakan arahan berikut:

$ gdb myapp
(gdb) break main.main
(gdb) run

Mengambil titik putus sebagai contoh, apabila pelaksanaan mencapai titik putus, ia akan berhenti berjalan dan masukkan mod nyahpepijat.

Delve debugger:

Delve ialah penyahpepijat berkuasa yang menyokong penyahpepijat jauh dan penyahpepijatan rangkaian. Mula-mula anda perlu memasang Delve:

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

Kemudian laksanakan arahan berikut untuk memulakan penyahpepijat:

$ dlv debug myapp

Arahan ini akan memulakan penyahpepijat dan membuka antara muka REPL (Read-Eval-Print Loop), yang boleh digunakan untuk nyahpepijat.

Ringkasan

Artikel ini memperkenalkan kaedah penempatan dan penyahpepijatan Golang: kompilasi, pembolehubah persekitaran, Docker, pprof, GDB dan Delve. Saya harap ia dapat membantu pembangun menguasai kemahiran Golang dengan lebih baik.

Atas ialah kandungan terperinci Pengenalan terperinci kepada kaedah penggunaan dan penyahpepijatan Golang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan