การเพิ่มประสิทธิภาพภาษา Delphi
1) ส่งคืนค่าของบันทึกหรือประเภทอาร์เรย์
โปรแกรมเมอร์ C++ จะไม่ทำเช่นนี้เนื่องจากค่าที่ส่งคืนจะถูกผลักลงบนสแต็ก ส่งผลให้ทั้งเวลาและพื้นที่มีประสิทธิภาพ Delphi ไม่มีปัญหานี้ ค่าที่ส่งคืนจะเท่ากับพารามิเตอร์ Out และผู้เรียกจะส่งผ่านตัวชี้หน่วยหน่วยความจำ ดังนั้นคุณสามารถใช้ค่าที่ส่งคืนของเรกคอร์ดหรืออาร์เรย์เพื่อเพิ่มความสะดวกในการอ่านและสะดวกในการเขียนนิพจน์
2) การแสดงออกในที่สาธารณะ
Delphi จะแยกเฉพาะนิพจน์ทั่วไปภายในบรรทัดคำสั่งเท่านั้น หากนิพจน์ทั่วไปมีการเรียกใช้ฟังก์ชันหรือการเข้าถึงคุณสมบัติ นิพจน์นั้นจะไม่ถูกแยกออกมา กล่าวคือ จะถูกประเมินสองครั้ง เนื่องจากการแตกออกอาจส่งผลให้เกิดการเปลี่ยนแปลงความหมาย
3) พารามิเตอร์ const
เมื่อพารามิเตอร์ฟังก์ชันไม่เปลี่ยนแปลง หากความยาวของพารามิเตอร์เกิน 4 ไบต์หรือเป็นอินเทอร์เฟซ สตริง หรือประเภทอาเรย์แบบไดนามิก การใช้พารามิเตอร์ const จะทำให้คอมไพลเลอร์ส่งผ่านในโหมดที่อยู่โดยไม่ต้องแก้ไขเทคโนโลยีอ้างอิง
4) ความเข้มงวด
Delphi จะจัดสรรพื้นที่ให้เล็กที่สุดเท่าที่จะเป็นไปได้เมื่อจัดสรรหน่วยจัดเก็บข้อมูล หากมีขนาดเล็กพอและสามารถใส่ในรีจิสเตอร์ได้ โดยทั่วไปจะใช้การดำเนินการโดยตรงกับรีจิสเตอร์ ตัวอย่างเช่น เมื่อกำหนดบันทึกหรือข้อมูลที่มีความยาว 4 ไบต์ คอมไพลเลอร์จะใช้รีจิสเตอร์ 32 บิตโดยอัตโนมัติตาม DWord
5) ผู้ปฏิบัติงาน
การหารด้วย 2 หรือ 4 จะถูกปรับให้เหมาะสมสำหรับการเลื่อนไปทางขวา และการคูณด้วย 2 หรือ 4 จะถูกปรับให้เหมาะสมสำหรับกะซ้าย ดังนั้นจึงไม่จำเป็นต้องใช้การดำเนินการกะโดยเฉพาะ และสามารถเขียนโค้ดที่อ่านได้มากขึ้น แต่การคูณและหารด้วย 8 และผลคูณอื่นๆ ของ 2 จะไม่มีการเพิ่มประสิทธิภาพนี้
i := i + 1; และ Inc(i); โดยทั่วไปจะสร้างโค้ดเดียวกัน
6) จุดลอยตัว
Delphi ไม่ได้ปรับการคำนวณจุดลอยตัวให้เหมาะสม แม้ว่าการเพิ่มการดำเนินการเป็นศูนย์จะไม่ได้รับการปรับให้เหมาะสม และคำสั่ง FWAIT จำนวนมากจะถูกเพิ่มเข้าไป ดังนั้น เมื่อเขียนการดำเนินการจุดทศนิยมที่สำคัญ คุณต้องปรับนิพจน์ให้เหมาะสมด้วยตนเอง และแยกนิพจน์สาธารณะด้วยตนเอง ใช้ตัวแปรกลางให้น้อยที่สุดเท่าที่จะเป็นไปได้ เนื่องจากตัวแปรจุดลอยตัวจะไม่ได้รับการปรับให้เหมาะสม และจะถูกเขียนกลับไปยังหน่วยความจำ แม้ว่าจะไม่ได้ใช้ในภายหลังก็ตาม ใช้ชุดประกอบหากจำเป็น หรือพิจารณาใช้ C อย่างไรก็ตาม โดยทั่วไปแล้ว ไม่มีความแตกต่างกันมากนักในประสิทธิภาพระหว่างโปรแกรมจุดลอยตัว Delphi และ C ที่เทียบเท่ากัน
7) พร้อมข้อความ
ด้วยสามารถสร้างตัวแปรระดับกลางโดยนัยเพื่อหลีกเลี่ยงการคำนวณซ้ำ
8) การสะสม
i ใน [0..31] เร็วกว่า (i >= 0) และ (i <= 31)
9) ความกว้างบิต
เมื่อไม่ได้ใช้การบีบอัด ให้ใช้จำนวนเต็มและคาร์ดินัล เนื่องจาก SmallInt, ShortInt, Byte ฯลฯ จะใช้พื้นที่ 4 หรือ 8 ไบต์เมื่อจัดเรียงไบต์ โดยยังคงเป็น 32 บิตในการคำนวณ และต้องขยายเป็น 32 บิตก่อน