kann man das glauben



  • Original erstellt von 1ntrud0r:
    **also ich hab ma die directx 9 samples mit c# und msvc++ compiled und das oben geschriebene kann ich nicht bestätigen .. ich kann nur die andren meinungen bestätigen mit c# lagen die fps so bei maximal 100 und bei c++ so etwa bei 800-1000 ..
    **

    Der Unterschied scheint mir zu groß zu sein, um es auf C# allgemein schieben zu können. Wahrscheinlich gibt es dafür eine andere Erklärung. Vielleicht war das C#-Beispiel mit der tatsächlichen Bildwiederholrate synchronisiert. ...oder es wird doch irgendwie etwas ganz anderes gemacht.



  • kingruedi: Ich wär doch sehr erstaunt, wenn sich der Template-Mechanismus bis auf Bytecode-Ebene hinunterzieht. Der Bytecode ist eine Maschinensprache für eine VM, der hat AFAIK im Unterschied zum realen Maschinencode gerade mal die zusätzliche Abstraktion einer Klasse, aber ganz sicher nicht des Templates. Im Bytecode kommen dann nur noch bereits instanziierte Templates vor, die normalen Klassen gleichgestellt sind. Die Mechanismen, die das Compilieren langsam machen (Namensauflösung, Template-Instanziierung, etc.) werden bei der Transformation Source nach Bytecode ausgeführt.



  • ich hab mal ne allgemeine frage: warum kommt es in vergleichen immer wieder dazu, das es verglichen wird, wie lange ein compiler fuer ne quell-text zum uebersetzen braucht ? das sollte eigendlich ziemlich egal sein.

    wer kompilierten denn schon ein paar hundertemal am tag, das das ausschlaggebend waere ??

    Deadman



  • alle?

    ändern - compilieren - testen - ändern - compilieren - testen - ...

    Wenn du test-first entwickelst, kommst du evtl. wirklich auf hundert ...



  • BTW: Was sind denn so typische Zeiten für die Kompilierung eines größeren Programms bei C++? ...wenn man nur kleine Änderungen gemacht hat und mit make oder so arbeitet?



  • Gregor: offtopic!





  • Original erstellt von Gregor:
    BTW: Was sind denn so typische Zeiten für die Kompilierung eines größeren Programms bei C++? ...wenn man nur kleine Änderungen gemacht hat und mit make oder so arbeitet?

    Normalerweise dauert das dann nicht lange da nur die jeweils geänderten bzw. von Änderungen betroffenen Übersetzungseinheiten neu kompiliert werden und das Linken dann nicht mehr viel Zeit in Anspruch nimmt.
    (Voraussetzung hierfür ist natürlich dass die Sourcen sauber aufgeteilt sind und nicht allzuviele Abhängigkeiten da sind.)

    Kleine Änderungen am Mozilla zB (der normalerweise ja ein paar Stunden Compilezeit braucht) bedeuten für mich in den meisten Fällen unter 15 Sekunden Kompilierdauer (auf meinem 650MHz Athlon mit 256MB RAM).



  • Wenn das nur ein paar Sekunden jeweils sind, dann sollte das doch tatsächlich nicht so ins Gewicht fallen, oder? Oder kommt es bei C++ oft vor, dass man das gesamte Programm neu kompiliert?

    @Deadman: Es ging hier ursprünglich darum, wieviel Zeit der Just-In-Time-Compiler braucht. Da dieser zur Laufzeit des Programms läuft, ist es natürlich wichtig, dass er nicht viel Zeit benötigt.



  • Original erstellt von Gregor:
    Wenn das nur ein paar Sekunden jeweils sind, dann sollte das doch tatsächlich nicht so ins Gewicht fallen, oder?
    Oder kommt es bei C++ oft vor, dass man das gesamte Programm neu kompiliert?

    Stimmt.
    Nein.


Anmelden zum Antworten