XCode Codewarrior C++ Super Langsam

Dieses Thema im Forum "Mac OS Entwickler, Programmierer" wurde erstellt von BigSebek, 18.11.2005.

  1. BigSebek

    BigSebek Thread Starter MacUser Mitglied

    Beiträge:
    3
    Zustimmungen:
    0
    Mitglied seit:
    18.11.2005
    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?
     
  2. below

    below MacUser Mitglied

    Beiträge:
    13.276
    Zustimmungen:
    1.086
    Mitglied seit:
    15.03.2004
    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
     
  3. oneOeight

    oneOeight MacUser Mitglied

    Beiträge:
    47.808
    Zustimmungen:
    3.797
    Mitglied seit:
    23.11.2004
    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....
     
  4. BigSebek

    BigSebek Thread Starter MacUser Mitglied

    Beiträge:
    3
    Zustimmungen:
    0
    Mitglied seit:
    18.11.2005
    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.
     
  5. pdr2002

    pdr2002 MacUser Mitglied

    Beiträge:
    6.849
    Zustimmungen:
    241
    Mitglied seit:
    28.01.2004
    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:
     
  6. below

    below MacUser Mitglied

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

    Gruss

    Alex
     
  7. Generalsekretär

    Generalsekretär MacUser Mitglied

    Beiträge:
    829
    Zustimmungen:
    1
    Mitglied seit:
    06.06.2005
    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.
     
  8. below

    below MacUser Mitglied

    Beiträge:
    13.276
    Zustimmungen:
    1.086
    Mitglied seit:
    15.03.2004
    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
     
  9. kiu

    kiu MacUser Mitglied

    Beiträge:
    601
    Zustimmungen:
    1
    Mitglied seit:
    26.04.2004
    @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

    Unixx MacUser Mitglied

    Beiträge:
    549
    Zustimmungen:
    19
    Mitglied seit:
    25.08.2004
    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.
     
Die Seite wird geladen...

Diese Seite empfehlen