Profiling - Gründe suchen



  • Nehmen wir an ich baue gerade an einem Software-Rasterizer und mir fällt eine mögliche Optimierung ein. Eingebaut, Profiler genutzt, langsamer. Mathematisch grundsätzlich aber schneller. Also wahrscheinlich Cache-Miss, trivialerweise langsamen Code erzeugt (ASM schlecht), Pipelining-Probleme, etc.

    Gibt es auch Programme die mich unterstützen auf der Suche nach den Gründen dafür? Die mir sagen in welche Falle ich getappt bin? Die mir evtl. sogar noch sagen, ob das nur rein zufällig bei meiner HW-Konfiguration der Fall ist oder generell auftreten dürfte bei x86, etc.?

    MfG SideWinder



  • ja, das machen profiler normalerweise.



  • Praktisch 🤡 Habe VS2010 Prof., ist da soetwas dabei und ich hab's übersehen oder muss man soetwas extra zukaufen? Empfehlungen?

    MfG SideWinder



  • dabei ist ein profiler nicht, afaik. deine keywords sind
    amd codeanalyst (gratis)
    intel vtune (gratis auf linux,kostet auf win)
    ja, beide laufen auch auf den cpus des konkurenten, spezielle counter werden dann aber nicht ausgelesen.

    btw. normalerweise schaut man sich zuerst den generierten assembler an um zu sehen, ob die gewuenschte optimierung am ende auch angekommen ist (naja, eigentlich profiled man erst und optimiert dann 😉 ).



  • Wenn du es rausgefunden hast, warum es langsamer ist, sag es bitte, würde mich interessieren.



  • zzhhnn schrieb:

    Wenn du es rausgefunden hast, warum es langsamer ist, sag es bitte, würde mich interessieren.

    Die Profiling-Frage ist rhetorischer Natur, in der Praxis sieht es nämlich so aus: Der TriangleRasterizer basiert auf einer Laborübung an meiner Universität und ist im Stile der TU Wien vollständig in Java (TM) programmiert 🤡

    MfG SideWinder



  • SideWinder schrieb:

    zzhhnn schrieb:

    Wenn du es rausgefunden hast, warum es langsamer ist, sag es bitte, würde mich interessieren.

    Die Profiling-Frage ist rhetorischer Natur, in der Praxis sieht es nämlich so aus: Der TriangleRasterizer basiert auf einer Laborübung an meiner Universität und ist im Stile der TU Wien vollständig in Java (TM) programmiert 🤡

    lol, java ist keine gute ausrede um langsamen code zu haben 😉
    1. java disassembler nutzen
    2. einen der vielen java profiler nutzen
    3. in vielen dingen ist java wie eine in-order cpu mit kurzer pipeline, ein paar instruktionen sparen resultiert meistens in performance.

    und immer latest jdk nutzen, von 1.5 auf 1.6 hat mir 30% gebracht, bestes update bisher (leider nutze ich 1.5 dennoch, weil so einige osx leute ihr system nicht komplett updaten wollen um 1.6 zu haben, und apple eh immer viel latenz hat bis die neuste jvm zur verfuegung steht 😞 ).



  • SideWinder schrieb:

    Die Profiling-Frage ist rhetorischer Natur

    Nö,rhetorisch wäre: Bist Du Dir sicher das Du das wirklich optimieren willst?

    http://de.wikipedia.org/wiki/Rhetorische_Frage


Anmelden zum Antworten