Storan, Memori, Stack
Lokasi data EVM
Storan, Memori, Stack ialah pelajaran Asas Pembangunan Web3 & DApp percuma di CoddyKit. Ini ialah pelajaran 2 daripada 4. Sebanyak 3 pelajaran dalam laluan pembelajaran ini boleh dibaca sepenuhnya secara percuma — selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan praktikal dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Asas Pembangunan Web3 & DApp, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Asas Pembangunan Web3 & DApp merangkumi sejumlah 4 pelajaran.
Tempat Data Disimpan dalam EVM
EVM mempunyai beberapa tempat berbeza untuk menyimpan data, setiap satunya dengan kos dan jangka hayat yang berbeza.
Tiga lokasi data utama ialah tindanan, memori dan storan. Memilih lokasi yang betul penting untuk menulis kontrak yang cekap.
Tindanan
Tindanan ialah ruang kerja EVM untuk pengiraan. Tindanan boleh menyimpan sehingga 1024 nilai, setiap satunya berukuran 256 bit.
Kod operasi menolak dan menambah nilai pada bahagian atas tindanan. Tindanan sangat murah tetapi kecil dan sementara.
PUSH1 0x02 // [2]
PUSH1 0x04 // [2, 4]
MUL // [8]
// stack vanishes when the call endsMemori
Memori ialah tatasusunan bait linear sementara yang wujud hanya sepanjang satu panggilan transaksi.
Memori digunakan untuk perkara yang terlalu besar bagi tindanan, seperti membina rentetan atau tatasusunan. Memori kembali kosong apabila panggilan selesai.
memory[0x00..0x20] = some value
// readable/writable during the call
// erased after execution endsStoran
Storan ialah keadaan kekal kontrak yang disimpan pada rantaian blok antara transaksi.
Storan ialah gedung nilai-kunci yang memetakan slot 256-bit kepada nilai 256-bit. Pemboleh ubah keadaan dalam kontrak disimpan di sini.
storage slot 0 -> owner address
storage slot 1 -> total supply
storage slot 2 -> paused flag
// persists forever on-chainPerbandingan Kos
Kos meningkat dengan ketara mengikut lokasi:
- Tindanan — paling murah, beberapa unit gas bagi setiap operasi
- Memori — murah, bertambah mengikut saiz
- Storan — sangat mahal, terutamanya penulisan pertama
Mengapa Storan Mahal
Penulisan storan mahal kerana setiap nod mesti mengekalkannya selama-lamanya. Penulisan storan baharu (SSTORE) boleh berharga 20000 gas.
Oleh sebab itu, pembangun meminimumkan penulisan storan dan memilih memori untuk kerja sementara.
Slot dan Pembungkusan Storan
Storan disusun dalam slot berukuran 32 bait. Pemboleh ubah yang lebih kecil boleh dibungkus ke dalam satu slot untuk menjimatkan gas.
Contohnya, dua nilai uint128 boleh dimuatkan bersama dalam satu slot 256-bit.
slot 0: [ uint128 a | uint128 b ]
// two values packed into one slot
// saves a storage slot = saves gasData Panggilan
Lokasi keempat, data panggilan, menyimpan data input baca sahaja bagi sesuatu transaksi atau panggilan.
Lokasi ini ialah tempat paling murah untuk membaca argumen fungsi dan tidak boleh diubah, menjadikannya sesuai untuk input yang hanya perlu dibaca.
Memilih Lokasi yang Betul
Peraturan umum:
- Gunakan tindanan untuk pengiraan berjangka pendek
- Gunakan memori untuk struktur sementara
- Gunakan storan hanya untuk data yang mesti kekal
- Gunakan data panggilan untuk input baca sahaja
Ringkasan Jangka Hayat
Setiap lokasi mempunyai jangka hayat yang berbeza:
- Tindanan dan memori — hilang apabila panggilan tamat
- Storan — kekal secara berterusan pada rantaian
- Data panggilan — wujud sepanjang panggilan dan hanya boleh dibaca
Merumuskan Semuanya
EVM memisahkan data kepada tindanan, memori, storan dan data panggilan, yang secara umumnya disusun daripada yang paling murah dan paling singkat hayatnya kepada yang paling mahal dan kekal.
Pembangun yang cekap mengurangkan penulisan storan kekal kepada minimum.
Semakan Pantas
Uji pengetahuan anda tentang lokasi data EVM.
Imbas Kembali: Storan, Memori, Tindanan
Anda telah mempelajari bahawa:
- Tindanan murah, kecil dan sementara
- Memori ialah ruang kerja sementara untuk panggilan
- Storan kekal tetapi mahal
- Data panggilan ialah input baca sahaja yang murah
Seterusnya: kod operasi secara terperinci.
Pelajari Asas Pembangunan Web3 & DApp dengan tutor kecerdasan buatan — percuma
Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.
- Kursus
- 29
- Pelajaran
- 105
Soalan Lazim
Adakah pelajaran “Storan, Memori, Stack” percuma?
Ya — sebanyak 3 pelajaran dalam laluan pembelajaran Asas Pembangunan Web3 & DApp, termasuk “Storan, Memori, Stack”, boleh dibaca sepenuhnya secara percuma di web ini. Selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan interaktif dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Kursus Asas Pembangunan Web3 & DApp merangkumi sejumlah 4 pelajaran.
Apakah yang akan saya pelajari dalam “Storan, Memori, Stack”?
Lokasi data EVM Anda berlatih Asas Pembangunan Web3 & DApp menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.
Adakah saya memerlukan pengalaman untuk memulakan Asas Pembangunan Web3 & DApp?
Tiada pengalaman terdahulu diperlukan. Pembelajaran Asas Pembangunan Web3 & DApp di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 2 daripada 4.
Berapa lamakah pelajaran “Storan, Memori, Stack” diambil?
Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.
Bolehkah saya menulis dan menjalankan kod dalam pelajaran Asas Pembangunan Web3 & DApp ini?
Ya. Setiap pelajaran Asas Pembangunan Web3 & DApp menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.
Semua pelajaran dalam kursus ini
- Mesin Maya Ethereum
- Storan, Memori, Stack
- Opcode
- Akaun dan Keadaan