Login
Newsletter
Werbung

Thema: Diskussion um Standardoptimierung beim GCC

9 Kommentar(e) || Alle anzeigen ||  RSS || Kommentieren
Kommentare von Lesern spiegeln nicht unbedingt die Meinung der Redaktion wider.
1
Von sbsjsjsjs am Sa, 28. Oktober 2017 um 14:48 #

Interessant das manche mit Optimierungen Debuggen. Gibt es da wirklich irgendwelche Vorteile?

Wobei ich auch selten in den Assembler schaue. Deshalb ist mir dessen interne Code Qualität egal. Debug Performance ist mir auch egal, da Entwickler Rechner i.d.r. mehrfaches an Leistung eines normalen PCs besitzen. Wenn's lahmt, dann wird halt wieder aufgerüstet.

Ich habe im Debug Modus null Optimierung, weil sonst der Programmablauf zu stark geändert wird und Zeilen einfach wegoptimiert sind. Dann wird solange gedebuggt, bis alle Tests im Single wie Multithreadmodus bestehen.

Später mache ich dieselben Tests im Release und stelle den Optimierungslevel auf Maximum. Das Maximum für meinen Prozessor sozusagen. Mir ist noch nie passiert, dass dabei ein Unit-Test fehlgeschlagen ist. Mann muss sich jedoch an gängige Vorgaben halten und nicht jeden Müll blind aus StackOverflow kopieren.

  • 1
    Von Lord am So, 29. Oktober 2017 um 18:16 #

    LOL, wie putzig bist du denn. Mit Optimierungen debuggen?

    Wohl gerade mit dem Studium angefangen und hier auf dicke Hose machen:-)

    Wer schon mal brauchbare Software verteilt hat wird schnelle die ersten Bugreports erhalten, wenn du deine Software mit Optimierung e.g. -O3 ausgeliefert hast, dann bekommst du nur unnützes Zeug im Crashdump.
    Besser du lieferst optimierten Code mit ordentlichen Debug Infos aus -Og, dann nützt dir (ich mein das generell, ich glaube dir persönlich nutzt der nix) evtl. der Dump was.

    Wenn du mit solchen Sprüchen kommst wie "Wobei ich auch selten in den Assembler schaue", dann musst du dich nicht wundern, wenn dir jemand schnell den Wind aus den Segeln nimmt, viel Ahnung hast du jedenfalls nicht.

    0
    Von schmidicom am Mo, 30. Oktober 2017 um 12:05 #

    Was du da beschreibst kann aber nur funktionieren wenn die Software bereits vorkompiliert auf die Welt losgelassen wird.

    In einer OpenSource-Community ist das eher selten der Fall, da kompilieren die Distributionen (manchmal sogar die User selbst) und nicht die Entwickler. Und wenn in so einem Umfeld Bugreports mit Backtraces zurück kommen muss der Entwickler ja auch noch was damit anfangen können. Ein "-Og" scheint mir da dann doch etwas sehr extrem zu sein, Gentoo empfiehlt ein "-O2":
    Gentoo Wiki - Safe CFLAGS
    Gentoo Wiki - GCC optimization

    Dieser Beitrag wurde 1 mal editiert. Zuletzt am 30. Okt 2017 um 12:06.
    • 1
      Von assdadad am Mo, 30. Oktober 2017 um 13:16 #

      > Was du da beschreibst kann aber nur funktionieren wenn die Software bereits vorkompiliert auf die Welt losgelassen wird.

      Richtig.

      > In einer OpenSource-Community ist das eher selten der Fall,

      Bin eher der Meinung, dass es andersrum ist. Die meist verwendeten Desktop-Distris sind Debian Forks. Sie nehmen teilweise 70% (Tendenz steigend) der User ein und werden immer vorkompiliert ausgliefert. Bei diesen Usern tendiert die Anzahl der selbst kompilierten Pakete gegen Null. Bei Servern und Workstations spielen noch Red Hat EL Forks Rolle. Gentoo, Slackware oder LFS tauchen meist im Bereich des Messrauschens auf. Kann auch insgesamt damit zusammenhängen, dass die Linux-Stichprobe im Verhältnis zur Grundgesamtheit so klein ist und sich deshalb so schwer messen lässt. Mir ist aber persönlich noch Keiner über den Weg gelaufen, der auf seinem Server oder seiner Workstation was anderes als Debian oder RHEL Derivate einsetzt.

      Pro-Linux ist jetzt zwar keine repräsentative Stichprobe aber auch da sind es nur ~20% der User, die regelmäßig kompilieren.

      Ein weiterer Hinweis sind auch Nachrichten, bei denen es um C,C++,Compiler und sonstige Dinge geht. Die Antworten und die Votes schreien einfach nach Unwissen. Ich kann mir daher ehrlich nicht vorstellen, dass die Leute hier wirklich mal mehr als ein Hello World ausprobiert haben geschweige denn in der Industrie Programme verkaufen.

      > Ein "-Og" scheint mir da dann doch etwas sehr extrem zu sein, Gentoo empfiehlt ein "-O2"

      Richtig. O2 ist der Standard für nahezu alle Distris/Programme/IDEs. -Og habe ich bisher nur selten angetroffen obwohl ich selbst schon exotisch kompiliere.

Pro-Linux
Pro-Linux @Twitter
Neue Nachrichten
Werbung