Yardım GCC Optimizasyon flagleri Hk

  • Konuyu açan Konuyu açan sauber
  • Açılış Tarihi Açılış Tarihi
  • Yanıt Yanıt 4
  • Gösterim Gösterim 63
Konu sahibi bu konuda soru soruyor. Sorusu ile ilgili bilgisi olanların yanıtlamasını bekliyor.

sauber

Üye
Üye
Mesaj
85
Çözümler
2
Beğeni
58
Puan
679
Ticaret Puanı
0
Selamlar,

Makefile da game yada db compile ederken GCC optimizasyon flagleri veirliyor. Kullandığım filesta (martysama altyapısı) -O2 olarak verilmişti, geliştirme aşamasında bunu -O0 olarak güncelledim (core dumplarda yeterli bilgi gözükmüyordu) neden O2 yada O0 flag'i kullanılmalı bilgisi olan var mıdır?
Chatgpt'nin özeti:

FlagMeaningUse Case
-O0No optimization (default)Debugging (easy to map code ↔ machine)
-O1Basic optimizations (safe, faster code)Development builds, fast compiles
-O2More aggressive optimizations (safe, stable)General release builds
-O3Maximum optimization for speed (may increase size)CPU-bound tasks, compute-heavy apps
-OsOptimize for size (compact binary)Embedded, size-constrained systems
-OfastIgnores some language standards for speedWhen you don't need strict IEEE/ISO

Not: Farklı bir filesta denediğimde O2->O0 dönüşümünü, compile ederken fazlasıyla hata yakaladı, chatgpt'nin açıklaması aşağıdaki gibi:

Optimization Level ChangeExpected Outcome
-O2-O0Should compile the same, but may expose hidden issues in dead code, uninitialized variables, or warnings that were previously optimized away.

Teşekkürler
 
gdb ile core açtığın zaman bazı yerlerde "optimized out" mu ne yazar, yazmaması için O0 kullanacaksın yani optimizasyonlar kapalı olacak.

tabii release sürümde yani dosya ile server açacağın zaman kesinlikle O2 kullanılmalı, O3 ise sanıldığının aksine her zaman daha hızlı olmuyor tavsiye etmiyorum.

bu arada clang için -ggdb3 kullanıyorum ben, belki gcc içinde aynı flag vardır..
 
gdb ile core açtığın zaman bazı yerlerde "optimized out" mu ne yazar, yazmaması için O0 kullanacaksın yani optimizasyonlar kapalı olacak.

tabii release sürümde yani dosya ile server açacağın zaman kesinlikle O2 kullanılmalı, O3 ise sanıldığının aksine her zaman daha hızlı olmuyor tavsiye etmiyorum.

bu arada clang için -ggdb3 kullanıyorum ben, belki gcc içinde aynı flag vardır..
yorum için teşekkürler, clang kullanmanın ne gibi artıları oldu sizin için?
 
Geri
Üst