Jawaban:
Ini digunakan di Gentoo, dan saya tidak melihat ada yang aneh.
-O3
memiliki beberapa kelemahan:
-O2
atau -Os
. Kadang-kadang menghasilkan kode lebih lama karena loop membuka gulungan yang mungkin sebenarnya lebih lambat karena kinerja kode cache yang lebih buruk.-O3
.-O3
flag tidak akan mengubah biaya pengalihan konteks atau kecepatan I / O. Saya tidak berpikir sesuatu seperti <0,1% percepatan kinerja keseluruhan tidak sia-sia.Perhatikan bahwa potongan besar dari toolchain (khususnya glibc) flat out tidak dapat dikompilasi jika Anda mengubah level optimisasi. Sistem build diatur untuk mengabaikan preferensi -O Anda untuk bagian ini pada sebagian besar distro yang waras.
Sederhananya, pustaka fundamental dan fitur OS tertentu tergantung pada kode yang benar-benar melakukan apa yang dikatakannya, bukan apa yang akan lebih cepat dalam banyak kasus. -fgcse-after-reload secara khusus (diaktifkan oleh -O3) dapat menyebabkan masalah aneh.
Selama 10 tahun terakhir saya telah menjalankan banyak sistem Gentoo dengan 1000+ paket menggunakan -O3 -march=native
secara global dan belum mengalami salah satu dari masalah stabilitas mistis yang -O3
seharusnya ada. Benchmark aplikasi intensif CPU (seperti aplikasi matematika / sains) secara konsisten menunjukkan -O3
untuk menghasilkan kode lebih cepat, setelah semua itu akan sia-sia jika tidak. Untuk sebagian besar aplikasi desktop CFLAGS
tidak terlalu penting karena mereka terikat IO, tetapi penting untuk hal-hal sisi server yang terikat CPU.
-O3 menggunakan beberapa optimisasi agresif yang hanya aman jika asumsi tertentu tentang penggunaan register, bagaimana stack frames berinteraksi dengan, dan fungsi reentrancy benar, dan asumsi ini tidak dijamin benar dalam beberapa kode seperti kernel terutama ketika inline assembly adalah digunakan (seperti di beberapa bagian kernel dan modul drivernya yang sangat rendah).
-O2
untuk mengetahui cuaca atau tidak itu sakit atau membantu
Meskipun Anda dapat menggunakan -O3 dan kenop optimisasi lainnya pada sebagian besar aplikasi (dan itu dapat menghasilkan peningkatan kecepatan), saya akan ragu untuk menggunakan tweak kernel itu sendiri atau pada rantai alat yang diperlukan untuk membangunnya (kompiler, binutils, dll.)
Pikirkan tentang hal ini: Apakah keuntungan kinerja 5% dari subsistem raid dan ext3 bernilai crash sistem atau potensi kehilangan data dan / atau korupsi?
Tweak semua tombol yang Anda inginkan untuk port Quake yang Anda mainkan atau audio / video codec yang Anda gunakan untuk menyalin koleksi DVD Anda ke file divx. Anda mungkin akan melihat peningkatan. Hanya saja, jangan main-main dengan kernel kecuali Anda punya waktu untuk membuang dan data Anda dapat menanggung kehilangan.
-O0
juga tidak didukung sama sekali! stackoverflow.com/questions/29151235/…