Endlosschleife - 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 Winkiller (175 Beiträge) am Samstag, 20.Januar.2001, 14:20.
    Endlosschleife

      Sowas ist schnell mal programmiert! Ein kleiner Fehler genügt schon.

      Vor einigen Tagen habe ich auch geglaubt, ich hätte eine Endlosschleife Programmiert. Die Sache läuft jetzt. Der Fehler ist behoben. Ich kann ihn mir zwar nicht richtig erklären, aber eine Endlosschleife ist sehr unwahrscheinlich.

      Hier noch ein Beispiel, wie man Endlosschleifen unabsichtlich programmieren kann:

      : while ($i<20)
      : {
      : out "Endlosschleife";
      : }

      $i wird bestimmt nie grösser als 20 sein!
      

      mfg
      Winkiller


    Antworten

 Alle Einträge zum Thema: Zur Liste 
    Beitrag von Christoph Bergmann (8110 Beiträge) am Freitag, 19.Januar.2001, 20:56.
    Warum sich baseportal manchmal so langsam aufbaut...

      Hi Leute... Irgendjemand belastet den Server mit irgendeinem Skript ziemlich stark - anscheinend meistens in den Abendstunden - war grad eben wieder so... Leider konnte ich noch nicht rauskriegen was und wer und wie das war, wollte nur Bescheid geben, damit Ihr wisst worans liegt - es liegt weder am Provider noch an fehlenden Kapazitäten - Nach einem Webserver-Restart war aber alles wieder voll ok... Ich glaube nicht, dass das jemand mit Absicht macht, sondern da läuft halt ne Endlosschleife sinnlos rum oder vielleicht importiert jemand Gigabyte-weise Daten... Mal sehen, ich hoffe bald eine Lösung dafür zu finden - man müsste Skripts in den Ressourcen begrenzen, max. 2 Sekunden Laufzeit o.ä.

      Das nur zur Info ;-)

     Antworten

    Beitrag von Ruben (403 Beiträge) am Freitag, 19.Januar.2001, 23:49.
    Re: Warum sich baseportal manchmal so langsam aufbaut...

      Auch auf die Gefahr hin, daß ich als irgendwas dastehe, ich hab festgestellt, daß bspw. dei Bücherdatenbank aus der Bib u.a. auch ein <loop></loop> drin hat.
      Wir hatten die Diskussion vor paar Tagen mal, daß das Rechenzeit be großen DBs kostet. Wenn solche "Leer"-Loops in einigen DBs drin sind, wäre es wahrscheinlich, daß das was damit zu tun hat?
      Vielleicht überprüfen mal alle ihre Templates - mir war das beim Einsatz auch nicht klar, bis mich Winkiller und Christoph darauf hingewiesen hatten.
      Bis die bytes
      Ruben

     Antworten

    Beitrag von Tina (259 Beiträge) am Samstag, 20.Januar.2001, 00:16.
    Re: Warum sich baseportal manchmal so langsam aufbaut...

      Hi Ruben,
      jetzt mußt du mich mal "Aufklären". Ich habe mit mal die Bücherdatenbank angeschaut und das einzigste was ich gefunden habe ist

      Einmal Datenbank öffnen um Variablenwerte für Perl zu bekommen.
      <loop db=Buch></loop>
      

      Wo ist denn da der "Leer-Loop????

      Gruß
      Tina

     Antworten

    Beitrag von Christoph Bergmann (8110 Beiträge) am Samstag, 20.Januar.2001, 13:58.
    Re: Ruben hat schon recht!

      Ruben hat schon völlig recht, solche loops sind natürlich völlig unnötige Zeitverschwendung... Es wäre schon schön, wenn alle so ein bisschen auf sowas achten würden (Und wenn das als Beispiel in der Bibliothek steht ist das natürlich ein schlechtes Vorbild ;-) )

      Allerdings glaube ich nicht, dass es direkt was mit den Problemen gestern und vorvorgestern zu tun hat, denn auch ein loop über sagen wir 10.000 Daatensätze sollte in max. ein paar Sekunden durch sein und dann wäre wieder alles gut, ich tippe schon eher auf Endlosschleife/Massenimport...

      Tina: Du hast den Leerloop schon genau hingeschrieben:

      <loop db=Buch></loop>
      

      Das initialisiert nicht nur die Variablen, sondern durchläuft tatsächlich jeden einzelnen Datensatz der Datenbank - ohne irgendwas damit zu machen oder auszugeben...

      Wenn ichs recht verstehe ist das ein Workaround um die Anzahl Datensätze einer DB zu bekommen - mhh, ok, dann sollte ich mir mal ne Lösung dafür überlegen... Bis es soweit ist, bitte wenigstens folgenden Workaround nutzen:

      <loop db=Buch range=0,1></loop>
      

      Das holt nur EINEN EINZIGEN Datensatz... ;-)

     Antworten

    Beitrag von Christoph Bergmann (8110 Beiträge) am Samstag, 20.Januar.2001, 20:37.
    Nachtrag, WICHTIG: Bitte <perl>init "db"</perl> statt <loop...etc. benutzen!!

      Hab mir das ganze nochmal durch den Kopf gehen lassen. Bitte folgendes benutzen, um die Anzahl Einträge einer Datenbank vor dem Auslesen zu bekommen:

      <perl>init "datenbank"; ""</perl>
      

      Das "" am Schluss ist dafür da, damit ihr keine Ausgabe vom "init" bekommt... Danach steht die Anzahl der Einträge in $_amount_all...

      Das ist die schnellste Methode an die Anzahl der Datensätze zu kommen...

     Antworten

    Beitrag von Agapi (48 Beiträge) am Sonntag, 21.Januar.2001, 07:01.
    Re: Nachtrag, WICHTIG: Bitte <perl>init "db"</perl> statt <loop...etc. benutzen!!

      oops, da bin ich wahrscheinlich nicht ganz unschuldig dran.
      Ich habe versucht mit
      : get "datum($Datumfreigabe,'Tag.Monat.')==datum(jetzt,'Tag.Monat.')";
      den Datensatz zu bekommen in dem das Datum in dem Feld $Datumsfreigabe mit dem heutigen Datum übereinstimmt.
      Da das aber nicht geht, habe ich es mit einem Loop gelöst.

      <loop db=Datenbank code=perl>   
      if (datum($Datumfreigabe,'Tag.Monat.')==datum(jetzt,'Tag.Monat.'))
      {...}
      </loop>
      

      Kann ich das jetzt mit

      <perl>init "datenbank"; "";
      if (datum($Datumfreigabe,'Tag.Monat.')==datum(jetzt,'Tag.Monat.'))
      {...}
      </perl>
      
      lösen?

     Antworten

    Beitrag von Christoph Bergmann (8110 Beiträge) am Montag, 22.Januar.2001, 13:51.
    Re: Nachtrag, WICHTIG: Bitte <perl>init "db"</perl> statt <loop...etc. benutzen!!

      Hi Agapi...

      Mmhh, nee, das glaube ich nicht, dass Du mit obigem loop gleich den Server in die Knie zwingst - aber es ist schon gut, wenn alle ein bisschen drauf achten, die Sachen so effizient wie möglich zu machen, ist ja sowieso im ureigensten Interesse und man lernt damit auch gleich besser zu programmieren...

     Antworten

    Beitrag von Agapi (48 Beiträge) am Montag, 22.Januar.2001, 09:35.
    Re: Nachtrag, WICHTIG: Bitte <perl>init "db"</perl> statt <loop...etc. benutzen!!

      oops, da bin ich wahrscheinlich nicht ganz unschuldig dran.
      Ich habe versucht mit

      get "datum($Datumfreigabe,'Tag.Monat.')==datum(jetzt,'Tag.Monat.')";
       
      den Datensatz zu bekommen in dem das Datum in dem Feld $Datumsfreigabe mit dem heutigen Datum übereinstimmt.
      
      Da das aber nicht geht, habe ich es mit einem Loop gelöst.



      <loop db=Datenbank code=perl> 
      if (datum($Datumfreigabe,'Tag.Monat.')==datum(jetzt,'Tag.Monat.'))
      {...}
      </loop>
       
      

      Kann ich das jetzt mit



      <perl>init "datenbank"; "";
      if (datum($Datumfreigabe,'Tag.Monat.')==datum(jetzt,'Tag.Monat.'))
      {...}
      </perl>
      

     Antworten

    Beitrag von Winkiller (175 Beiträge) am Samstag, 20.Januar.2001, 14:20.
    Endlosschleife

      Sowas ist schnell mal programmiert! Ein kleiner Fehler genügt schon.

      Vor einigen Tagen habe ich auch geglaubt, ich hätte eine Endlosschleife Programmiert. Die Sache läuft jetzt. Der Fehler ist behoben. Ich kann ihn mir zwar nicht richtig erklären, aber eine Endlosschleife ist sehr unwahrscheinlich.

      Hier noch ein Beispiel, wie man Endlosschleifen unabsichtlich programmieren kann:

      : while ($i<20)
      : {
      : out "Endlosschleife";
      : }

      $i wird bestimmt nie grösser als 20 sein!
      

      mfg
      Winkiller

     Antworten


     
 Liste der Einträge von 66150 bis 66300: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.07s by baseportal.de
Erstellen Sie Ihre eigene Web-Datenbank - kostenlos!