Laufzeitoptimierung - baseportal Forum - Web-Anwendungen einfach, schnell, leistungsfähig!
baseportal
English - Deutsch "Es gibt keine dummen Fragen - jeder hat einmal angefangen"

 baseportal-ForumDie aktuellsten 10, 30, 50, 100 Einträge anzeigen.  

 
 Ausgewählter Eintrag: Zur Liste 
    Beitrag von Spencer (109 Beiträge) am Montag, 13.Dezember.2004, 08:31.
    Laufzeitoptimierung

      Hallo

      Ich lasse im folgenden Schnippsel eine Ligatabelle berechnen.
      In der DB sind ca. 500 Datensätze. Pro Berechnung (Rennen) werden ca. 70 Datensätze geholt. Die Laufzeit beträgt zwischen 1,5 - 2,5 sek.
      Ist das normal ? Kommt mit etwas hoch vor.
      Vielleicht hat einer der Perl-Experten einen Tipp zur Optimierung.

      Danke Spencer

      <perl>
      get "rennen==$r1", "strecken";
      get "rennen==$r1 sort=-fahrt,zeit", "$s","holen";
      

      $t1 = $_amount_query;

      while(get_next("holen"))
         {
          mod "Id==$_id&rennen==$r1", ["platzalt_zeit", $platz_zeit], "$s";### Alte Plazierung wird vor Neuberechnung in platzalt_zeit geschrieben
      
          $rang = ++$rang;     $Platz1 = $rang if($zeit ne $puffer);     $puffer=$zeit;
          
            if ($versuch > 1)
             {
              $bonus = $laenge*($versuch-1)*$rang/1000; ### Bonuspunkte werden berechnet
             }
            else
             {
              $bonus = 0;
             }
      
            if ($fahrt > 0)        {         $laenge_ges1 = $versuch*$laenge; ### Gesamtkilometer         $Punkte = $t1-$Platz1+1; ### Punkte für gefahrene Zeit         $Punkte_ges = $t1-$Platz1+1+$bonus; ### Punkte + Bonus         $Punkte_ges = sprintf('%.02f',$Punkte_ges);         mod "Id==$_id&rennen==$r1", ["zeit_pkt", $Punkte, "ges_pkt", $Punkte_ges, "platz_zeit", $Platz1, "laenge_ges", $laenge_ges1, "bonus", $bonus], "$s";        }       else        {         $Punkte=0;         $laenge_ges1 = 0;         mod "Id==$_id&rennen==$r1", ["zeit_pkt", $Punkte, "platz_zeit", $Platz1, "laenge_ges", $laenge_ges1], "$s";        }    } <perl>


    Antworten

 Alle Einträge zum Thema: Zur Liste 
    Beitrag von Spencer (109 Beiträge) am Montag, 13.Dezember.2004, 08:31.
    Laufzeitoptimierung

      Hallo

      Ich lasse im folgenden Schnippsel eine Ligatabelle berechnen.
      In der DB sind ca. 500 Datensätze. Pro Berechnung (Rennen) werden ca. 70 Datensätze geholt. Die Laufzeit beträgt zwischen 1,5 - 2,5 sek.
      Ist das normal ? Kommt mit etwas hoch vor.
      Vielleicht hat einer der Perl-Experten einen Tipp zur Optimierung.

      Danke Spencer

      <perl>
      get "rennen==$r1", "strecken";
      get "rennen==$r1 sort=-fahrt,zeit", "$s","holen";
      

      $t1 = $_amount_query;

      while(get_next("holen"))
         {
          mod "Id==$_id&rennen==$r1", ["platzalt_zeit", $platz_zeit], "$s";### Alte Plazierung wird vor Neuberechnung in platzalt_zeit geschrieben
      
          $rang = ++$rang;     $Platz1 = $rang if($zeit ne $puffer);     $puffer=$zeit;
          
            if ($versuch > 1)
             {
              $bonus = $laenge*($versuch-1)*$rang/1000; ### Bonuspunkte werden berechnet
             }
            else
             {
              $bonus = 0;
             }
      
            if ($fahrt > 0)        {         $laenge_ges1 = $versuch*$laenge; ### Gesamtkilometer         $Punkte = $t1-$Platz1+1; ### Punkte für gefahrene Zeit         $Punkte_ges = $t1-$Platz1+1+$bonus; ### Punkte + Bonus         $Punkte_ges = sprintf('%.02f',$Punkte_ges);         mod "Id==$_id&rennen==$r1", ["zeit_pkt", $Punkte, "ges_pkt", $Punkte_ges, "platz_zeit", $Platz1, "laenge_ges", $laenge_ges1, "bonus", $bonus], "$s";        }       else        {         $Punkte=0;         $laenge_ges1 = 0;         mod "Id==$_id&rennen==$r1", ["zeit_pkt", $Punkte, "platz_zeit", $Platz1, "laenge_ges", $laenge_ges1], "$s";        }    } <perl>

     Antworten

    Beitrag von Pouraga (1396 Beiträge) am Montag, 13.Dezember.2004, 21:40.
    Re: Laufzeitoptimierung

      2 Tipps:

      Zunächst versuche es ohne die sortierung nach fahrt und zeit hin zubekommen, das nimmt unnötig ne menge Zeit in anspruch. (das bringt bestimmt über ne Sekunde) Könnte sogar schon so funktionieren ohne das sort, ansonnsten musst den code vielicht noch mal nen bischen ändern.

      Dann ist das erste mod eigentlich unnötig, das kannst du auch hinterher beim 2 bzw. 3 noch gleichzeitig machen.

     Antworten

    Beitrag von Spencer (109 Beiträge) am Montag, 13.Dezember.2004, 22:09.
    Re: Laufzeitoptimierung

      Hallo Pouraga

      Danke schonmal für die 2 Tipps.

      Die Sortierung muß ich drin lassen, weil ich sonst die Ränge nicht vergeben kann. Oder geht´s auch anders ?

      Das mit dem 1. mod ins zweite packen hört sich plausibel an. Werde ich mal ausprobieren.

      Spencer

     Antworten


     
 Liste der Einträge von 26550 bis 26700:Einklappen Zur Eingabe 
Neueste Einträge << 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | Neuere Einträge < Zur Eingabe  > Ältere Einträge | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 >> Älteste Einträge


Zurück zur Homepage

© baseportal.de. Alle Rechte vorbehalten. Nutzungsbedingungen



powered in 0.05s by baseportal.de
Erstellen Sie Ihre eigene Web-Datenbank - kostenlos!