ในระดับนามธรรมคุณสามารถรวมสิ่งที่คุณต้องการในภาษาที่คุณออกแบบ
ในระดับการนำไปปฏิบัตินั้นเป็นสิ่งที่หลีกเลี่ยงไม่ได้ที่สิ่งเหล่านั้นจะง่ายกว่าในการนำไปใช้บางอย่างจะซับซ้อนบางอย่างสามารถทำได้อย่างรวดเร็วบางอย่างถูกผูกไว้ให้ช้าลงและอื่น ๆ ในการพิจารณาเรื่องนี้นักออกแบบมักจะต้องตัดสินใจอย่างหนักและยอมจำนน
ในระดับการใช้งานหนึ่งในวิธีที่เร็วที่สุดที่เราคิดในการเข้าถึงตัวแปรคือการค้นหาที่อยู่และโหลดเนื้อหาของที่อยู่นั้น มีคำแนะนำเฉพาะใน CPUs ส่วนใหญ่สำหรับการโหลดข้อมูลจากที่อยู่และคำแนะนำเหล่านั้นจำเป็นต้องรู้จำนวนไบต์ที่พวกเขาต้องการโหลด (หนึ่งสองสี่สี่แปด ฯลฯ ) และตำแหน่งที่จะใส่ข้อมูลที่พวกเขาโหลด (ลงทะเบียนเดียวลงทะเบียน คู่, ลงทะเบียนขยาย, หน่วยความจำอื่น ๆ , ฯลฯ ) โดยการรู้ขนาดของตัวแปรคอมไพเลอร์สามารถรู้ได้อย่างชัดเจนว่าคำสั่งใดที่ปล่อยออกมาสำหรับการใช้งานตัวแปรนั้น โดยไม่ทราบขนาดของตัวแปรคอมไพเลอร์จะต้องหันไปใช้บางสิ่งที่ซับซ้อนและอาจช้าลง
ในระดับนามธรรมจุดของการพิมพ์ย่อยนั้นจะสามารถใช้อินสแตนซ์ของประเภทหนึ่งซึ่งคาดว่าจะมีประเภททั่วไปที่เท่ากันหรือมากกว่านั้น กล่าวอีกนัยหนึ่งรหัสสามารถเขียนได้ที่คาดว่าวัตถุประเภทใดประเภทหนึ่งหรือสิ่งอื่นใดที่ได้รับมากกว่าโดยไม่ต้องรู้ล่วงหน้าว่ามันจะเป็นเช่นไร และชัดเจนเนื่องจากประเภทที่ได้รับเพิ่มเติมสามารถเพิ่มข้อมูลสมาชิกได้มากขึ้นประเภทที่ได้รับจึงไม่จำเป็นต้องมีข้อกำหนดหน่วยความจำเช่นเดียวกับประเภทฐาน
ในระดับการใช้งานไม่มีวิธีง่ายๆสำหรับตัวแปรที่มีขนาดที่กำหนดไว้ล่วงหน้าเพื่อเก็บอินสแตนซ์ของขนาดที่ไม่รู้จักและเข้าถึงได้ในแบบที่คุณมักจะเรียกว่ามีประสิทธิภาพ แต่มีวิธีการย้ายสิ่งต่าง ๆ รอบ ๆ เล็กน้อยและใช้ตัวแปรที่ไม่เก็บวัตถุ แต่เพื่อระบุวัตถุและปล่อยให้วัตถุนั้นถูกเก็บไว้ที่อื่น วิธีนั้นเป็นการอ้างอิง (เช่นที่อยู่หน่วยความจำ) - การเพิ่มระดับทางอ้อมที่ทำให้มั่นใจได้ว่าตัวแปรจะต้องเก็บข้อมูลขนาดคงที่บางประเภทไว้ตราบใดที่เราสามารถค้นหาวัตถุผ่านข้อมูลนั้นได้ เพื่อให้บรรลุผลนั้นเราเพียงแค่ต้องโหลดที่อยู่ (ขนาดคงที่) จากนั้นเราสามารถทำงานได้ตามปกติโดยใช้อ็อฟเซ็ตของวัตถุที่เรารู้ว่าถูกต้องแม้ว่าวัตถุนั้นจะมีข้อมูลมากกว่าที่เราไม่ทราบก็ตาม เราทำได้เพราะเราไม่ '
ในระดับนามธรรมวิธีนี้ช่วยให้คุณสามารถจัดเก็บ (อ้างอิงถึง) string
เป็นตัวแปรโดยไม่สูญเสียข้อมูลที่ทำให้มันเป็นobject
string
มันดีสำหรับทุกประเภทในการทำงานเช่นนี้และคุณอาจบอกว่ามันยอดเยี่ยมในหลาย ๆ ด้าน
ถึงกระนั้นในระดับการติดตั้งระดับการเสริมทางอ้อมเกี่ยวข้องกับคำแนะนำเพิ่มเติมและในสถาปัตยกรรมส่วนใหญ่ทำให้แต่ละการเข้าถึงวัตถุนั้นช้าลงบ้าง คุณสามารถอนุญาตให้คอมไพเลอร์บีบประสิทธิภาพออกจากโปรแกรมมากขึ้นถ้าคุณรวมในภาษาของคุณบางประเภทที่ใช้กันทั่วไปซึ่งไม่มีระดับทางอ้อมพิเศษนั้น (อ้างอิง) แต่โดยการลบระดับของการอ้อมนั้นคอมไพเลอร์ไม่สามารถอนุญาตให้คุณพิมพ์ย่อยในวิธีที่ปลอดภัยของหน่วยความจำอีกต่อไป นั่นเป็นเพราะถ้าคุณเพิ่มสมาชิกข้อมูลลงในประเภทของคุณและคุณกำหนดให้กับประเภททั่วไปมากขึ้นสมาชิกข้อมูลเพิ่มเติมใด ๆ ที่ไม่พอดีกับพื้นที่ที่จัดสรรให้กับตัวแปรเป้าหมายจะถูกตัดออก