automatischer Verbesserungsmodus bei onlinie-Compiler nicht ausschaltbar - was tun?



  • Hi, ich habe mir ein Programm hergestellt in C, dass mit einem Online-Compiler verarbeitet werden muss, da ein eigenen C-Compiler es dafür nur für über 1000 Euro zu kaufen gibt und ich gerne erstmal das freie Compiling unter dem Internet probieren tue.

    Es scheint das eine oder andere Konstrukt zu geben in meiner Programmierung, was dem Compiler nicht gefällt und der es wegoptimiert - z.B. eine leere Warteschleife, die aber notwendig ist, um ein paar Zyklen Rechenzeit zu verbrauchen. Erst, wenn in dieser Schleife etwas vorhanden ist, dann geht sie nicht fort. Wenn ich es normal teste, ohne den online-Compiler, dann geht das nur weg mit so einer nicht ganz vollen Schleife, wenn ich die Optimierungsoptionen einschalten tue. Aber die schalte ich normalerweise nicht ein, weil ich selber so bestimmen will, was gut ist und was nicht so gut.

    Die Konsequenz des Wegoptimierens ist ein nicht funktionierendes Programm. Aber wenn ich in den Schleifenkonstrukt einen "unnötigen" Befehl einbaue, damit eine Wegoptimierung nicht funktioniert, weil dann in dem Schleifenkonstrukt etwas drinnen steht, dann werden unnötige Prozessortakte verplempert, weil ich so eine mehrfach-Operation länger ausführen muss, die unnötig ist. Alleine ein Print-Befehl verbraucht schon enorme Mengen an Ressourcen oder wenn ich eine Variable zuweise, dann geht das in der Regel schneller, aber nicht ohne die Zuweisung. Lasse ich sie weg, dann wird der ganze Programmteil abgehängt, aber sobald ich etwas "sinnlosese" reinschreibe wie int variab = 1, dann geht es und es wird nicht wegoptimiert. Wie kann man dem Online compiler sagen, dass er nicht online wegoptimieren darf. Warum ist der Online-Compiler übrigens kostenfrei und die Kaufversion nicht kostenfrei?



  • da ein eigenen C-Compiler es dafür nur für über 1000 Euro zu kaufen gibt

    So ist das. Nur die reichsten Leute im Programmiersektor haben einen C-Compiler auf ihrem System installiert, geschweige denn C++ - bei Letzterem steigen Leute mit einem Jahresgehalt <200000€ einfach aus, für das Ding muss man ein Vermögen hinlegen und es dazu ständig instand halten (Renovierungen kosten um die Fünfzigtausend jährlich). SeppJ hat sich damit krass verschuldet und nur damit retten können dass er seinen eigenen Tod vorgetäuscht hat; da sieht man mal wie bei Drogen überreagiert, hier aber beide Augen zugedrückt werden!

    Es scheint das eine oder andere Konstrukt zu geben in meiner Programmierung, was dem Compiler nicht gefällt und der es wegoptimiert

    So sind die Compiler - kosten genauso viel wie sie launisch sind! An einem Tag O0, am nächsten O4. Manchmal verwechselt der auch Java2k mit C++, aber dank sowas können wir Portabilität sicherstellen. Einfach den Header immer einbinden, dann ist's garantiert Java2k.

    Erst, wenn in dieser Schleife etwas vorhanden ist, dann geht sie nicht fort.

    Hört sich romantisch an. Ich möchte sie lieben, langsam Stück für Stück an der Durchlaufvariable nuckeln, die Abbruchbedingung immer wieder aufs neue entdecken und die Seiteneffekte im Sonnenuntergang geniessen.

    Alleine ein Print-Befehl verbraucht schon enorme Mengen an Ressourcen

    Stimmt. Da braucht man schon mehrere Petaflops an Rechenkraft bis printf überhaupt handhabbar wird, gerade mit einem Literal als Formatstring. Für den letzeren Fall sollte man auch immer puts verwenden, gerade mit dem GCC. Theoretische Kalkulierungen ergeben dass du über zwei Wochen bräuchtest um läppische 1000 Strings über printf auszugeben. Man kann sich vorstellen in welche Dimensionen das ganze mit zusätzlichen Variablen entartet.

    Warum ist der Online-Compiler übrigens kostenfrei und die Kaufversion nicht kostenfrei?

    Ganz einfach. Die Website kann durch die Milliarden Überschüsse die durch Werbeanzeigen entstehen locker die entsprechende Lizenz und Intakthaltung dauerhaft zahlen.


  • Mod

    Genug getrollt.


Log in to reply