Rumah > Artikel > pembangunan bahagian belakang > Perbincangan ringkas mengenai peruntukan memori dari perspektif bahasa Go
. beberapa bidang tertentu seperti tertanam, C jarang dilihat, tetapi kenapa saya masih mendengar xx mengatakan bahawa kita perlu 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 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.
Pertama sekali, kita perlu memahami komponen utama komputer.
首先,简单的说,至少由 CPU
CPU
内存条
硬盘
显卡
显示器
操作系统(Linux,Windowns)
内存条
硬盘
显卡
🎜🎜🎜🎜 🎜🎜🎜 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:
Setiap aplikasi pada sistem (qq, WeChat, dsb.) mahu membenarkan komputer memaparkan muzik, dan monitor seperti Writ ke cakera keras memerlukan persetujuan sistem pengendalian.
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.
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.
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.
Ya, itu sahaja, memory stick.
Begitu juga, saya juga boleh memahami struktur dalaman memory stick dengan cara ini.
Kita boleh memahami memori melekat sebagai rumah, seperti ini.
masih jelek ...
tetapi tongkat ingatan kita mempunyai koordinat , juga dipanggil address , setiap grid kecil ada nilai satu persatu.
Tapi biasalah, kita faham seadanya, macam ni.
Alamat (koordinat) biasanya dinyatakan dalam perenambelasan, dan apa sahaja nilai yang sepatutnya adalah bodoh.
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.
Umur nama pembolehubah kami menunjuk kepada 0x1001
0x1001
地址,并且输出了0x0001
alamat, dan 0x0001
Macam ni.
Nota:
上述age指向就是地址0x1001
0x1001
。
但是我们在fmt.Println("我今年:",age,"岁")
。
但是我们在fmt.Println("我今年:",umur,"岁")
打印时,我们打印的明的 值
。同理,我们在赋值,交换变量时,还是同理,我们在赋值,交换变量时,还是同理。面的值
。例如:
上述代码内存分配图。🎜
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?
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 Selamat datang semuaLike, Tinggalkan mesej, ke hadapan, cetak semula, Terima kasih atas syarikat dan sokongan anda Sertai kumpulan]
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!