หน่วยความจำ
โปรแกรมที่เขียนจาก Rust จะมีหน่วยความจำที่ใช้งานอยู่ 3 ส่วน:
- data memory - สำหรับเก็บข้อมูลที่ถูกกำหนดไว้ชัดเจน ทั้งในแง่ ขนาด และค่าคงที่ (เช่นอะไรก็ตามที่ใช้ได้ตลอดเวลาที่รันโปรแกรม)
ยกตัวอย่างข้อความในโปรแกรมของคุณ (เช่น "Hello World!"): ข้อมูลไบต์ของข้อความนี้ ถูกอ่านมาใช้แค่ครั้งเดียวเท่านั้น
ดังนั้นมันจึงถูกเก็บไว้ที่นี่ ซึ่งคอมไพเลอร์จะพยายามอย่างหนักเพื่อเพิ่มประสิทธิภาพให้ข้อมูลจำพวกนี้
ทำให้มันถูกนำมาใช้งานได้เร็วมาก เพราะตำแหน่งที่มันอยู่จะแน่นอนและรู้โดยทั่วกัน
- stack memory - สำหรับเก็บข้อมูลตัวแปรที่ประกาศไว้ในฟังก์ชัน
โดยตำแหน่งของข้อมูลนี้จะไม่เปลี่ยนแปลงเลยตลอดการทำงานของฟังก์ชัน;
และด้วยความสามารถของคอมไพเลอร์ จึงสามารถเพิ่มประสิทธิภาพให้การเข้าถึง stack นี้ทำได้เร็วมาก
- heap memory - สำหรับข้อมูลที่สร้างขึ้นในขณะที่แอปพลิเคชันกำลังทำงาน
ข้อมูลในส่วนนี้อาจถูกเพิ่มย้ายลบปรับขนาด ฯลฯ ได้ตลอดเวลา
เนื่องจากโดยธรรมชาติข้อมูลส่วนนี้จะมีความยืดหยุ่นในการทำงาน ซึ่งก็รับรู้กันว่าต้องแลกมาด้วย
การทำงานที่ช้าลง แต่ก็นั่นแหล่ะ มันทำให้การทำงานมีความแพรวพราวเพิ่มขึ้นด้วย
เมื่อใดที่มีการเพิ่มข้อมูลลงมาในส่วนนี้ เราเรียกว่าการ allocation
และ เมื่อใดที่มีการลบข้อมูลออกไปจากส่วนนี้ เราจะเรียกมันว่า deallocation