1. Dashboard
  2. Forum
    1. Unerledigte Themen
  3. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team-Mitglieder
    4. Trophäen
    5. Mitgliedersuche
  4. Tutorial Bereich
  • Anmelden
  • Registrieren
  • Suche
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Seiten
  • Forum
  • Lexikon
  • Erweiterte Suche
  1. Informatik Forum
  2. Webmaster & Internet
  3. Entwicklung

Grundrechnungsarten

    • Frage
  • Swoncen
  • 20. April 2006 um 01:50
  • Unerledigt
  • Swoncen
    22
    Swoncen
    Mitglied
    Reaktionen
    1
    Punkte
    5.331
    Beiträge
    993
    • 20. April 2006 um 01:50
    • #1

    Hallo!

    Ich bin mir im moment nicht sicher, aber wäre

    if( (Input2 - Input1) > Threshold )

    oder

    if( Input2 > (Input1 + Threshold) )

    schneller? Oder macht es sogar etwas aus, wenn ich den Vergleichsoperator Größer-Als hinten oder vorne schreib?

    if( (Input1 + Threshold) < Input2 )


    Oder ist alles gleich schnell?

    640K ought to be enough for anybody. :eek2:

  • mexx
    11
    mexx
    Mitglied
    Reaktionen
    22
    Punkte
    1.182
    Beiträge
    225
    • 20. April 2006 um 13:36
    • #2

    wie wärs wenn du dir einfach für jede möglichkeit eine schleife mit
    x wiederholungen baust, die zeit speicherst, und dann vergleichst?
    dann weisst dus sicher ...

    mfg
    mexx :devil:

    w.b.f.z.a.r.

  • Swoncen
    22
    Swoncen
    Mitglied
    Reaktionen
    1
    Punkte
    5.331
    Beiträge
    993
    • 20. April 2006 um 14:00
    • #3

    Ja stimmt..

    640K ought to be enough for anybody. :eek2:

  • Plantschkuh!
    24
    Plantschkuh!
    Mitglied
    Reaktionen
    163
    Punkte
    6.173
    Beiträge
    1.181
    • 20. April 2006 um 14:53
    • #4
    Zitat von Swoncen

    Oder ist alles gleich schnell?


    Ja. Subtraktionen sind auch nur Additionen (mit vorheriger Ermittlung des Komplements, aber das ist gratis), und Vergleiche mit > sind auch nur Subtraktionen. Du hast also bei jeder Variante die Kosten von zwei Additionen, und die sind wohl immer gleich schnell.

    Aber... bist du dir sicher, daß du diese Frage überhaupt stellen solltest? Wenn dein Programm zu langsam ist, optimiere richtig, statt an solchen winzigen Kleinigkeiten zu feilen. Oder verwende nicht Java... (das ist jetzt eine Annahme).
    Wenn es aber nicht zu langsam ist, dann ist Mikrooptimierung Zeitverschwendung.

    *plantsch*

  • Swoncen
    22
    Swoncen
    Mitglied
    Reaktionen
    1
    Punkte
    5.331
    Beiträge
    993
    • 20. April 2006 um 14:59
    • #5

    Ich verwende C++ und habe schon an sehr vielen Stellen Optimiert.. Ich programmier ein Motion Detection System und schaffe im Moment bei 640*480 RGB Videos 29,3 FPS ohne SIMD. Ich hab auf Speicheroptimierung schon fast alles optimiert was geht... Jetzt kommts auf die kleinen Dinge an.

    640K ought to be enough for anybody. :eek2:

  • Swoncen
    22
    Swoncen
    Mitglied
    Reaktionen
    1
    Punkte
    5.331
    Beiträge
    993
    • 20. April 2006 um 15:02
    • #6

    Achja.. warum ich da optimieren will ist, dass ich für jedes Pixel 3 mal solche Vergleiche führen muss. Das sind bei 640*480 307200 Vergleiche in einem Frame.. In Wirklichkeit sinds dann doch nicht immer 3 Vergleiche, weil ich manchmal Vorzeitig überspringen kann, aber detaillierter geh ich da jetzt nicht ein.

    mfg

    640K ought to be enough for anybody. :eek2:

  • mdk
    26
    mdk
    Emeritus
    Reaktionen
    130
    Punkte
    7.120
    Beiträge
    1.390
    • 20. April 2006 um 18:16
    • #7

    taktzahlen für den pentium (asm-befehle):
    add: 1 taktzyklus (2 wenn zweiter operand im memory, 3 wenn erster operand im memory)
    sub: siehe add
    cmp: 1 taktzyklus (2 wenn operand im memory)
    d.h.: sub ist LANGSAMER als cmp, wenn der erste operand im memory ist! (grund: sub speichert das ergebnis im 1.operanden, cmp im flagregister)
    in deinem fall ist es zwar egal, aber ich wollte einfach mit meinem (aus einem buch abgeschriebenen) assemblerwissen angeben:D .

  • Swoncen
    22
    Swoncen
    Mitglied
    Reaktionen
    1
    Punkte
    5.331
    Beiträge
    993
    • 20. April 2006 um 18:20
    • #8

    Danke.. ist trotzdem gut zu wissen!

    640K ought to be enough for anybody. :eek2:

  • wolfmann
    11
    wolfmann
    Mitglied
    Reaktionen
    2
    Punkte
    1.252
    Beiträge
    238
    • 20. April 2006 um 18:22
    • #9
    Zitat von Swoncen

    Ich verwende C++ und habe schon an sehr vielen Stellen Optimiert.. Ich programmier ein Motion Detection System und schaffe im Moment bei 640*480 RGB Videos 29,3 FPS ohne SIMD. Ich hab auf Speicheroptimierung schon fast alles optimiert was geht... Jetzt kommts auf die kleinen Dinge an.

    verwendest du die IPP? mit der hab ich damals viel rausholen koennen...

    -------------------
    “If you hear hoof beats, you should look for horses, not zebras.”
    --
    "You, Sir, are an Idiot!" - George Hamilton

  • Swoncen
    22
    Swoncen
    Mitglied
    Reaktionen
    1
    Punkte
    5.331
    Beiträge
    993
    • 20. April 2006 um 18:31
    • #10

    Ich habs verwendet, aber ich habs im Moment schneller ohne IPP. Welche IPP Version hast du verwendet?

    640K ought to be enough for anybody. :eek2:

  • wolfmann
    11
    wolfmann
    Mitglied
    Reaktionen
    2
    Punkte
    1.252
    Beiträge
    238
    • 20. April 2006 um 20:13
    • #11
    Zitat von Swoncen

    Ich habs verwendet, aber ich habs im Moment schneller ohne IPP. Welche IPP Version hast du verwendet?


    puuh, das war letztes Jahr... Ich glaub das war Version 3 - bin mir aber echt nicht sicher...

    -------------------
    “If you hear hoof beats, you should look for horses, not zebras.”
    --
    "You, Sir, are an Idiot!" - George Hamilton

  • Wolfibolfi
    37
    Wolfibolfi
    Mitglied
    Reaktionen
    186
    Punkte
    14.936
    Beiträge
    2.942
    • 20. April 2006 um 21:37
    • #12

    Tjo, und warum ohne SIMD? Wennst für jeden Pixel den gleichen Krempel machst, könntest da sicher was rausreißen.

    In einen FBO rendern ist wie eine Schachtel Pralinen - man weiß nie, was man kriegt.

  • Swoncen
    22
    Swoncen
    Mitglied
    Reaktionen
    1
    Punkte
    5.331
    Beiträge
    993
    • 20. April 2006 um 22:09
    • #13

    Hat die damals nicht noch IPL geheißen? Ich hab die 4te Version schon verwendet..

    @ Wolfibolfi: Ich mach im Prinzip für jeden Pixel dasselbe, aber unter manchen Bedingungen kann ich Pixel überspringen oder ich kann manche Funktionen in einem Durchlauf zusammenlegen.. das ist schwer zu sagen.. Ich werde auch an einigen Stellen SIMD verwenden, aber das Low-Level Zeugs kommt erst, wenn ich die Algorithmen so gut Optimiert hab, dass mir nichts mehr einfällt =)

    640K ought to be enough for anybody. :eek2:

  • Maximilian Rupp 27. Dezember 2024 um 12:06

    Hat das Thema aus dem Forum Programmieren nach Entwicklung verschoben.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!

Benutzerkonto erstellen Anmelden

Rechtliches

Impressum

Datenschutzerklärung