Benutzerdefinierte Suche

XCode Codewarrior C++ Super Langsam

  1. BigSebek

    BigSebek Thread StarterMacUser Mitglied

    Mitglied seit:
    18.11.2005
    Beiträge:
    3
    Zustimmungen:
    0
    Hallo an alle,
    ich habe ein Problem. Ich habe ein Programm in c++ geschrieben. Erst habe ich das mit XCode geschrieben. Das programm war super träge. Dann habe ich den gleichen code mit codewarrior kompiliert und es lief viel schneller. ich habe das ganze auf eine emac 1.25 kompiliert. Jetzt wollte ich das auf einem dual_core 2.3 teste wie schnell es läuft. ich dachte das würde rasendschnell laufen ab denkste. Woran kann es liegen. Muss ich das auf dem dual_core kompilieren damit er den prozessor richtig ansteuert?

    ich habe halt ein programm geschrieben dass zwei schleife durchläuft. Irgendwie läuft das programm nicht schneller auf dem G5 Dual_core. Das ding lief sogar langsamer als auf einem pc intel p4 2.53. ich dachte das würde auf dem g5 viel schneller sein. anscheinend sind mac für solche berechnung nicht gut.

    sehe ich das was falsch. kann mir jemand helfen?
     
    BigSebek, 18.11.2005
  2. below

    belowMacUser Mitglied

    Mitglied seit:
    15.03.2004
    Beiträge:
    13.289
    Zustimmungen:
    1.086
    Ja, CodeWarrior macht besseren Code, das ist immer noch so ...

    Aber von DualCore hast Du nur etwas, wenn das OS Dein Programm auch auf die verschiedenen CPUs verteilen kann. Wenn das einfache Schleifen sind, dann geht das nicht:

    "On multiprocessor systems, each processor can execute the code for a different thread. This parallel execution can lead to tremendous performance gains for your program and for the system as a whole."

    Du solltest die Logik Deines Programms in POSIX Threads (man pthread) aufteilen. Erst dann kannst Du von den Multi-CPUs profitieren.

    Gruss

    Alex
     
    below, 18.11.2005
  3. oneOeight

    oneOeightMacUser Mitglied

    Mitglied seit:
    23.11.2004
    Beiträge:
    48.176
    Zustimmungen:
    3.891
    CW hat default mässig optimierung im deployment target...
    bei XCode musst du erstmal die ganzen settings für gcc machen, das fängt mit dem
    -ftree-vectorize -fast -faltivec usw an....
     
    oneOeight, 18.11.2005
  4. BigSebek

    BigSebek Thread StarterMacUser Mitglied

    Mitglied seit:
    18.11.2005
    Beiträge:
    3
    Zustimmungen:
    0
    Hi, danke für die hilfe.

    Also kann ich mir das sparen mit dem dual_core. so gut kann ich keine programme schreiben dass ich mehrere prozessoren ausnutze. das finde ich echt schade. codewarrior gibt aber die entwicklung für MacIntel auf. Deshalb sagt man doch ich solle auf xcode umsteigen. ja toll. wo bekomme ich denn die anleitung was ich dort alle einstellen muss.

    ich verstehe nur nicht wieso, meine schleifen auf einem inel 2.5ghz ca. 1 stunden brauchen. auf meinem emac 1.25 ghz drei stunden. jedoch auf einem dual-core 2.3 fast 2 stunden. das ist doch eine verbesserung. ist intel in dieser hinsicht besser. vieleicht auch unter anderem der wechsel bei apple. ich habe immer gedacht ppc wären solche hardcore-maschinen.
     
    BigSebek, 18.11.2005
  5. pdr2002

    pdr2002MacUser Mitglied

    Mitglied seit:
    28.01.2004
    Beiträge:
    6.849
    Zustimmungen:
    241
    Um das beurteilen zu können, müßte man einmal den Quellcode sehen. Zum anderen würe ich Dir einmal diese Bücher hier empfehlen. Dann sehen wir weiter. :cool:
     
    pdr2002, 18.11.2005
  6. below

    belowMacUser Mitglied

    Mitglied seit:
    15.03.2004
    Beiträge:
    13.289
    Zustimmungen:
    1.086
    Vor allem leifert Apple aber auch ein super Tool, "Shark", mit dem man sehr genaue Analysen machen kann.

    Gruss

    Alex
     
    below, 18.11.2005
  7. Generalsekretär

    GeneralsekretärMacUser Mitglied

    Mitglied seit:
    06.06.2005
    Beiträge:
    829
    Zustimmungen:
    1
    Dabei spielen natürlich auch Dinge rein wie der auf dem Intel verwendete Compiler. Aber ganz allgemein:
    Willkommen in der Wirklichkeit.
    Apple hat die letzten 5-6 Jahre permanent getönt, wie schnell doch die eigenen Rechner seien auch ohne MHz. Nur leider war das zum Teil einfach Marketing-Bullshit.

    Der Fairness halber möchte ich bemerken, daß ein G5 mit dem richtigen OS und Compiler sejr schnell sein kann.
    Ich habe Vergleichstests im Inet gesehen (u.A. anadtech), bei denen auf x86 wie G5 Linux mit einer vergleichbaren Version des GCC lief. Darauf wurden eigene Benchprogramme übersetzt und dann getestet.
    Tendenz: der G5 ist schnell, aber nicht wirklich fundamental schneller als ein P4, gegen einen Athlon64 zieht er meist den Kürzeren.
     
    Generalsekretär, 18.11.2005
  8. below

    belowMacUser Mitglied

    Mitglied seit:
    15.03.2004
    Beiträge:
    13.289
    Zustimmungen:
    1.086
    Es soll ja Leute geben, die schon jetzt OS X auf anderen Prozessoren ausprobieren können. Aber die dürfen nicht darüber reden ...

    Aber auf jedem "gängigen" Betriebssystem muss jedes Programm für Multi-Prozessor Betrieb angepasst werden. Das OS kann einfach sehr schlecht raten, was man an Deinem Code parallelisieren kann.

    Gruss

    Alex
     
    below, 18.11.2005
  9. kiu

    kiuMacUser Mitglied

    Mitglied seit:
    26.04.2004
    Beiträge:
    601
    Zustimmungen:
    1
    @one0eight
    zitat: "CW hat default mässig optimierung im deployment target...
    bei XCode musst du erstmal die ganzen settings für gcc machen, das fängt mit dem
    -ftree-vectorize -fast -faltivec usw an...."

    heisst das ich kann mit der richtigen einstellung des gcc die performance des cw-compilers erreichen und die programme laufen dann vergleichsweise, wie die die vom cw compiliert wurden ??

    gruss kiu
     
  10. Unixx

    UnixxMacUser Mitglied

    Mitglied seit:
    25.08.2004
    Beiträge:
    549
    Zustimmungen:
    19
    Für den cc von sun gab und gibt es eine Befehl, der den code automatisch parallelisieren kann. Das funktioniert mit den ultrasparc cpus auch ganz.
     
    Unixx, 18.11.2005
Die Seite wird geladen...