Optimasi bahasa Delphi
1) Mengembalikan nilai tipe rekaman atau array
Pemrogram C++ tidak akan melakukan ini karena nilai yang dikembalikan akan dimasukkan ke dalam tumpukan, sehingga menghasilkan efisiensi waktu dan ruang. Delphi tidak memiliki masalah ini. Nilai yang dikembalikan setara dengan parameter Keluar, dan pemanggil meneruskan penunjuk unit memori. Oleh karena itu, Anda dapat menggunakan nilai kembalian rekaman atau larik untuk meningkatkan keterbacaan dan kenyamanan dalam menulis ekspresi.
2) Ekspresi publik
Delphi hanya mengekstrak ekspresi umum dalam baris pernyataan. Jika ekspresi umum berisi pemanggilan fungsi atau akses properti, ekspresi tersebut tidak diekstraksi, yaitu dievaluasi dua kali, karena ekstraksi dapat mengakibatkan perubahan semantik.
3) parameter konstan
Ketika parameter fungsi tidak diubah, jika panjang parameter melebihi 4 byte atau merupakan tipe antarmuka, string, atau array dinamis, menggunakan parameter const memungkinkan kompiler untuk meneruskannya dalam mode alamat tanpa mengubah teknologi referensi.
4) Penghematan
Delphi akan mengalokasikan ruang sekecil mungkin ketika mengalokasikan unit penyimpanan. Jika cukup kecil dan dapat ditampung dalam register, umumnya digunakan operasi langsung dengan register. Misalnya saat menugaskan record atau data dengan panjang 4 byte, compiler akan otomatis menggunakan register 32-bit sesuai DWord.
5) Operator
Membagi dengan 2 atau 4 akan dioptimalkan ke shift kanan, dan mengalikan dengan 2 atau 4 akan dioptimalkan ke shift kiri, sehingga tidak perlu menggunakan operasi shift secara khusus, dan kode yang lebih mudah dibaca dapat ditulis. Namun perkalian dan pembagian dengan 8 dan kelipatan 2 lainnya tidak akan mendapatkan optimasi ini.
i := i + 1; dan Inc(i); umumnya menghasilkan kode yang sama.
6) Titik mengambang
Delphi tidak mengoptimalkan perhitungan floating point, bahkan menambahkan operasi nol tidak akan dioptimalkan, dan banyak instruksi FWAIT akan ditambahkan. Oleh karena itu, saat menulis operasi floating-point kunci, Anda harus mengoptimalkan sendiri ekspresi dan mengekstrak sendiri ekspresi publik. Gunakan variabel perantara sesedikit mungkin, karena variabel floating-point tidak akan dioptimalkan dan akan ditulis kembali ke memori meskipun tidak digunakan nanti. Gunakan perakitan jika perlu, atau pertimbangkan untuk menggunakan C. Meskipun demikian, secara umum, tidak banyak perbedaan kinerja antara program floating-point Delphi dan C yang setara.
7) dengan pernyataan
dengan dapat menghasilkan variabel perantara implisit untuk menghindari penghitungan berulang
8) Koleksi
i di [0..31] lebih cepat dari (i >= 0) dan (i <= 31)
9) Lebar mata bor
Jika kompresi tidak digunakan, gunakan integer dan cardinal, karena SmallInt, ShortInt, Byte, dll juga akan menempati 4 atau 8 byte ketika byte diselaraskan. Masih 32 bit dalam perhitungan dan harus diperluas menjadi 32 bit terlebih dahulu.