Rumah >pembangunan bahagian belakang >Golang >Perbincangan ringkas mengenai peruntukan memori dari perspektif bahasa Go

Perbincangan ringkas mengenai peruntukan memori dari perspektif bahasa Go

Go语言进阶学习
Go语言进阶学习ke hadapan
2023-07-24 15:45:17525semak imbas

. beberapa bidang tertentu seperti tertanam, C jarang dilihat, tetapi kenapa saya masih mendengar xx mengatakan bahawa kita perlu belajar bahasa C dengan baik

Mengikut pemahaman saya, sebenarnya, belajar bahasa C, Apa yang anda pelajari bukan? bahasa, tetapi perkara di sebalik bahasa, reka bentuk yang diwakilinya, dan intipati yang diwakilinya.

Apa kelebihan jika anda belajar bahasa C dengan baik

Saya percaya mungkin ramai newbie pernah dengar bos tertentu berkata dalam kumpulan, saya belajar bahasa xx dalam masa seminggu mula bekerja secara langsung, dan kemudian anda berkata secara senyap, "Berpura-pura menjadi 13", mungkin, anda mula bergaduh secara langsung dalam kumpulan.

Jadi, bolehkah dikatakan bahawa anda boleh belajar bahasa dalam satu minggu atau dua minggu?

Saya boleh bertanggungjawab dan memberitahu anda bahawa tiada masalah sama sekali, tetapi ia perlu dibina di atas asas yang kukuh.

Dan penunjuk adalah asas yang sangat penting Tidak kira bahasa mana yang digunakan pada masa kini, intipatinya adalah penerapan penunjuk, tetapi ia hanya dikapsulkan.

Tetapi apa yang menyebabkan ini adalah jika asasnya tidak stabil, ia akan menyebabkan beberapa masalah yang tidak dapat dijelaskan dan tidak dapat difahami, terutamanya untuk newbie.

Jadi, walau tahap mana pun anda sekarang, yang belum belajar bahasa C wajib belajar C dan ambil asas penting yang tertinggal.

Jadi, izinkan saya memberi pengenalan ringkas dahulu.


Timbunan teknologi yang diperlukan

Timbunan teknologi yang digunakan kali ini ialah bahasa Go Secara teorinya, ia menggunakan bahasa C, tetapi kerana apabila memulakan dengan penunjuk, Go dan C Intipatinya ialah. sama, jadi bahasa Go yang lebih mesra pengguna digunakan.

Kami akan menambah Python kemudian, bandingkan dengan Go, apakah perbezaannya, dan lihat cara Python yang popular memperuntukkan memori.

Buat masa ini, apabila membaca artikel ini, saya masih mengesyorkan agar rakan-rakan anda mempunyai pengetahuan asas tertentu, sekurang-kurangnya memahami bagaimana untuk menentukan pembolehubah dan sebagainya.


Hubungan antara perkakasan sistem pengendalian

Pertama sekali, kita perlu memahami komponen utama komputer.

首先,简单的说,至少由 CPUCPU  内存条  硬盘  显卡 显示器  操作系统(Linux,Windowns)  

内存条

 Perbincangan ringkas mengenai peruntukan memori dari perspektif bahasa Go

硬盘

🎜🎜  🎜🎜🎜🎜显卡🎜🎜🎜🎜 🎜🎜🎜 gaya kod ="box-sizing: border-box;font-family: var(--monospace);vertical-align: initial;border-width: 1px;border-style: solid;border-color: rgb(231, 234, 237 );warna latar belakang: rgb(243, 244, 244);jejari sempadan: 3px;padding-kanan: 2px;padding-left: 2px;saiz fon: 0.9em;">显示器🎜🎜🎜 🎜  🎜🎜🎜🎜操作系统(Linux,Tetingkap)🎜🎜🎜🎜等。🎜🎜🎜🎜那么这些硬件是如何互相🎜酜那么这些硬件是如何互相🎜的。 🎜🎜🎜嗯...大概是这样子的,有点丑。🎜🎜



Ringkasnya:

  1. Setiap aplikasi pada sistem (qq, WeChat, dsb.) mahu membenarkan komputer memaparkan muzik, dan monitor seperti Writ ke cakera keras memerlukan persetujuan sistem pengendalian.

  2. Sistem pengendalian memanggil CPU untuk menyelesaikan pelaksanaan arahan, dan CPU membaca aplikasi yang terbuka ke dalam kayu memori Oleh itu, mengapa pemacu keras mekanikal terlalu perlahan, dan kini keadaan pepejal berdegup Ini melengkapkan pemindahan data cakera keras ke data memory stick.

  3. CPU menganalisa data aplikasi dibaca ke dalam memory stick Jika data diproses oleh CPU, ia akan diambil dan dikira dengan sendirinya Jika data diproses oleh kad grafik, ia akan dipanggil ke kad grafik untuk pengiraan. Jika ia adalah data bunyi, ia akan dikira dengan kad bunyi, tunggu.

  4. Melalui penyelarasan di atas, keseluruhan aplikasi pada asasnya boleh dijalankan Jika data perlu ditulis ke cakera keras, CPU hanya boleh menulis data dalam memory stick ke cakera keras.

Okay, melalui perkara di atas, secara asasnya kita dapat memahami hubungan penyelarasan antara sistem pengendalian dan setiap perkakasan.

Izinkan saya memberitahu anda satu rahsia, kod yang kami tulis pada asasnya berjalan dalam memory stick Begitu juga, aplikasi yang disebutkan di atas pada asasnya menjalankan kod aplikasi dalam memory stick.


Memory stick

Ya, itu sahaja, memory stick.

Perbincangan ringkas mengenai peruntukan memori dari perspektif bahasa Go

Begitu juga, saya juga boleh memahami struktur dalaman memory stick dengan cara ini.

Kita boleh memahami memori melekat sebagai rumah, seperti ini.

Perbincangan ringkas mengenai peruntukan memori dari perspektif bahasa Go

masih jelek ...

tetapi tongkat ingatan kita mempunyai koordinat , juga dipanggil address , setiap grid kecil ada nilai satu persatu.

Perbincangan ringkas mengenai peruntukan memori dari perspektif bahasa GoTapi biasalah, kita faham seadanya, macam ni.


Alamat (koordinat) biasanya dinyatakan dalam perenambelasan, dan apa sahaja nilai yang sepatutnya adalah bodoh.

Ringkas Kod

Mari kita lihat kod Go yang sangat pendek.

Isytihar pembolehubah umur dan tetapkan nilai 18, dan keluarkan. Bagaimana

package main


import "fmt"


func main() {
    var age int = 18
    fmt.Println("我今年:",age,"岁")
}

diwakili dalam ingatan.

Perbincangan ringkas mengenai peruntukan memori dari perspektif bahasa Go

Umur nama pembolehubah kami menunjuk kepada 0x10010x1001地址,并且输出了0x0001alamat, dan 0x0001

Nilai yang disimpan.

Macam ni. Perbincangan ringkas mengenai peruntukan memori dari perspektif bahasa Go

Nota:

Anda mesti faham ayat ini. 🎜🎜🎜

上述age指向就是地址0x10010x1001

但是我们在fmt.Println("我今年:",age,"岁")

但是我们在fmt.Println("我今年:",umur,"岁")打印时,我们打印的明的

同理,我们在赋值,交换变量时,还是同理,我们在赋值,交换变量时,还是同理。面的

例如:

Perbincangan ringkas mengenai peruntukan memori dari perspektif bahasa Go

Perbincangan ringkas mengenai peruntukan memori dari perspektif bahasa Go

上述代码内存分配图。

Perbincangan ringkas mengenai peruntukan memori dari perspektif bahasa Go

🎜

umur2 akan memohon semula alamat untuk menyimpan nilai umur 18 tahun.

Kadang-kadang ada yang bertanya, pada hari Sabtu, adakah mereka berdua menunjukkan ingatan yang sama pada masa yang sama?

Perbincangan ringkas mengenai peruntukan memori dari perspektif bahasa Go

Keputusan: Sudah tentu, kita akan bercakap tentang keadaan ini kemudian fahami sekarang, langkah demi langkah.


Kesimpulan

Nama pembolehubah menunjuk ke alamat memori .

Apabila kami menetapkan nilai, atau apabila kami mengendalikan pembolehubah seperti mencetak, kami beroperasi pada nilai pada alamat . .

Jika anda mempunyai sebarang masalah tugas semasa operasi, sila ingat untuk tinggalkan mesej di bawah dan kami akan menyelesaikan masalah tersebut secepat mungkin.

Saya seorang pengekod di Zhouba Jika anda fikir ia bagus, sila ingat untuk memberinya suka.

Terima kasih kerana menonton.

Jika anda mempunyai sebarang masalah semasa operasi, sila ingat untuk tinggalkan mesej di bawah dan kami akan menyelesaikan masalah tersebut secepat mungkin.

Beritahu orang lain dengan senyuman bahawa saya hari ini lebih baik daripada semalam, dan saya akan menjadi sama di masa hadapan.

Jika anda rasa artikel itu bagus, ingat untuk like dan tinggalkan mesej untuk menyokong untuk menyokong kami. Terima kasih kerana membaca. Jika anda mempunyai sebarang pertanyaan, sila tinggalkan mesej di bawah~

Jika anda ingin mengetahui lebih lanjut tentang Python, anda boleh merujuk kepada laman web pembelajaran: http://pdcfighting.com/, klik untuk membaca teks asal, anda boleh pergi terus~

------------- --- Tamat ------- ---- Cadangan untuk artikel menarik daripada isu terdahulu: Sebuah artikel dengan Anda memahami asas pengaturcaraan rangkaian bahasa GoStruktur asas bahasa Go (musim sejuk)

  • Sebuah artikel akan membawa anda memahami asas konkurensi (saluran) dalam bahasa Go

  • Perbincangan ringkas mengenai peruntukan memori dari perspektif bahasa Go

    Selamat datang semuaLike, Tinggalkan mesej,

    ke hadapan, cetak semula, Terima kasih atas syarikat dan sokongan anda

    Jika anda ingin menyertai kumpulan Go learning, sila balas di latar belakang [

    Sertai kumpulan]

    Beribu-ribu gunung dan sungai sentiasa suka, klik [
    Mencari
    】Okay

    🎜🎜🎜🎜🎜🎜🎜🎜

    Atas ialah kandungan terperinci Perbincangan ringkas mengenai peruntukan memori dari perspektif bahasa Go. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

    Kenyataan:
    Artikel ini dikembalikan pada:Go语言进阶学习. Jika ada pelanggaran, sila hubungi admin@php.cn Padam
    Artikel sebelumnya:Pergi asas bahasa - if-elseArtikel seterusnya:Pergi asas bahasa - if-else