/Og
(Pengoptimalan Global)
Ditolak. Menyediakan pengoptimalan lokal dan global, alokasi pendaftaran otomatis, dan pengoptimalan perulangan. Sebaiknya Gunakan ( /O1
Minimalkan Ukuran) atau /O2
(Maksimalkan Kecepatan) sebagai gantinya.
Sintaks
/Og
Keterangan
/Og
tidak digunakan lagi. Pengoptimalan ini sekarang diaktifkan secara default ketika pengoptimalan diaktifkan. Untuk informasi selengkapnya tentang pengoptimalan, lihat , (Minimalkan Ukuran, Maksimalkan Kecepatan), atau/Ox
(Aktifkan Pengoptimalan Kecepatan Terbanyak). /O2
/O1
Pengoptimalan berikut tersedia di bawah /Og
:
Eliminasi subekspresi umum lokal dan global
Dalam pengoptimalan ini, nilai subekspresi umum dihitung sekali. Dalam contoh berikut, jika nilai
b
danc
tidak berubah di antara tiga ekspresi, pengkompilasi dapat menetapkan perhitunganb + c
ke variabel sementara, dan menggunakan variabel tersebut untukb + c
:a = b + c; d = b + c; e = b + c;
Untuk pengoptimalan subekspresi umum lokal, pengompilasi memeriksa bagian kode pendek untuk subekspresi umum. Untuk pengoptimalan subekspresi umum global, pengompilasi mencari seluruh fungsi untuk subekspresi umum.
Alokasi register otomatis
Pengoptimalan ini memungkinkan pengompilasi untuk menyimpan variabel dan subekspresi yang sering digunakan dalam daftar. Kata
register
kunci diabaikan secara default, dan menyebabkan diagnostik di bawah/std:c++17
atau yang lebih baru.Pengoptimalan perulangan
Pengoptimalan ini menghilangkan subekspresi yang invarian dari isi perulangan. Perulangan optimal hanya berisi ekspresi yang nilainya berubah melalui setiap eksekusi perulangan. Dalam contoh berikut, ekspresi
x + y
tidak berubah dalam isi perulangan:i = -100; while( i < 0 ) { i += x + y; }
Setelah pengoptimalan,
x + y
dihitung sekali daripada setiap kali perulangan dijalankan:i = -100; t = x + y; while( i < 0 ) { i += t; }
Pengoptimalan perulangan jauh lebih efektif ketika pengkompilasi dapat mengasumsikan tidak ada aliasing, yang Anda tetapkan dengan
__restrict
,noalias
, ataurestrict
.Catatan
Anda dapat mengaktifkan atau menonaktifkan pengoptimalan global berdasarkan fungsi demi fungsi menggunakan
optimize
pragma bersama dengang
opsi .
Untuk informasi terkait, lihat /Oi
(Hasilkan fungsi intrinsik) dan /Ox
(Aktifkan pengoptimalan paling cepat).
Untuk mengatur opsi pengkompilasi ini di lingkungan pengembangan Visual Studio
Buka kotak dialog Halaman Properti proyek. Untuk detailnya, lihat Mengatur pengkompilasi C++ dan membuat properti di Visual Studio.
Pilih halaman properti Properti>Konfigurasi C/C++>Baris Perintah.
Masukkan opsi pengkompilasi dalam kotak Opsi Tambahan.
Untuk mengatur opsi pengkompilasi ini secara terprogram
- Lihat AdditionalOptions.