mediengestalter.info
FAQ :: Mitgliederliste :: MGi Team

Willkommen auf dem Portal für Mediengestalter

Aktuelles Datum und Uhrzeit: Sa 03.12.2016 10:54 Benutzername: Passwort: Auto-Login

Thema: Geschwindigkeit - While Schleife vom 14.02.2005


Neues Thema eröffnen   Neue Antwort erstellen MGi Foren-Übersicht -> Programmierung -> Geschwindigkeit - While Schleife
Seite: Zurück  1, 2, 3  Weiter
Autor Nachricht
Waschbequen
Account gelöscht


Ort: -

Verfasst Mo 14.02.2005 17:03
Titel

Antworten mit Zitat Zum Seitenanfang

virus-2k hat geschrieben:
je länger der code umso länger die scriptdauer oder nicht? *bäh*

Falsch. Je blöder der Code, desto länger die Scriptdauer. Ich kann dir Sachen schreiben die 3x länger sind als normal, dafür aber x mal schneller laufen.

Edit, Beispiel: folgende Aufgabe: http://codefairway.net/de/solvedholes.aspx?action=rules&hole=14

Die kürzeste Lösung:

Code:
public class Tee
{
  public void Off(int a,int z,out int e,out int o)
  {
    for(o=3De=3D0;z>=3Da&z>99;z--)
        for(int =
r=3D0,t=3Dz,s=3Dt;t>0;s+=3Dz=3D=3Dr?s%2>0?o++:e++:t/=3D10)r=3Dr*10+t%10;
  }
}


Die schnellste Lösung:

Code:
public class Tee
{
   public void Off(int b,int f,out int e,out int o){
      e=3DG(f)[0]-G(b-1)[0];
      o=3DG(f)[1]-G(b-1)[1];
   }

   int[]G(int i){
      char[]c=3D(""+i).ToCharArray();
      int x=3D0,y=3D0,s=3Dc.Length;
      double n;
   =09
      if(s>=3D3){
         c[0]=3D(char)(c[0]-1);
         n=3Ddouble.Parse(new string(c));
         Array.Reverse(c,0,c.Length/2);
         n-=3Ddouble.Parse(new string(c).Substring(0,c.Length/2));
         n/=3DMath.Pow(10,s/2);
         i=3D(int)Math.Ceiling(n);
         x=3Ds%2=3D=3D0=3Fi:i%2=3D=3D0=3Fi/2:i/2+1;
         y=3Ds%2!=3D0=3Fi/2:y;
      }

      for(i=3D0;i<s;){
         x+=3DD(i,1);
         y+=3DD(i++,0);
      }
      return new int[]{x,y,};
   }

   int D(int d,int i){
      int x=3Dd=3D=3D3=3F1:0;
      if(d>3)x=3D(int)Math.Pow(10,(((d-1)/2)-1));
      return x*=3Dd%2=3D=3D0=3F90*i:45;
   }
}


Zuletzt bearbeitet von am Mo 14.02.2005 17:05, insgesamt 1-mal bearbeitet
 
graphicsandunity

Dabei seit: 22.11.2004
Ort: Berlin
Alter: 33
Geschlecht: Männlich
Verfasst Mo 14.02.2005 17:03
Titel

Antworten mit Zitat Zum Seitenanfang

Also so ein Server leiert das Script schon relativ schnell durch, wenn nicht gerade irgendwelche Problme auftreten.
Das was am Ende wirklich lange dauern kann ist das Rendern im Browser.

Und so ein Schleifen-Konstrukt ist ja extra dafür da die Performance zu heben.
Inwiefern ist es dir denn überhaupt wichtig, welche der While-Varianten schneller ist?
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
Anzeige
Anzeige
virus-2k
Threadersteller

Dabei seit: 07.12.2004
Ort: Augsburg
Alter: 30
Geschlecht: Männlich
Verfasst Mi 16.02.2005 09:21
Titel

Antworten mit Zitat Zum Seitenanfang

wollte nur wissen was generell schneller ist....
echo ist schneller als print..
require(_once) ist schneller als include..
wollte halt nur wissen ob eine while oder eine do while schleife schneller ist aber ich probiers selbst ma aus Lächel
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
graphicsandunity

Dabei seit: 22.11.2004
Ort: Berlin
Alter: 33
Geschlecht: Männlich
Verfasst Mi 16.02.2005 11:25
Titel

Antworten mit Zitat Zum Seitenanfang

Also ich denke, dass man da keine marginalen Unterschiede haben wird. Auch wenn sicher ist, dass eine schneller geht als die andere.

Du kannst ja die Millisekunden vor dem Beginn der Schleife mal messen und dann, wenn die Schleife beendet wurde.
Die Differenz dürfte ja dann die benötigte Zeit in Millisekunden sein.

Würde mich jatzt auch mal interessieren. Lächel
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
virus-2k
Threadersteller

Dabei seit: 07.12.2004
Ort: Augsburg
Alter: 30
Geschlecht: Männlich
Verfasst Mi 16.02.2005 14:59
Titel

Antworten mit Zitat Zum Seitenanfang

Code:

// Aufgabe
do {
   $blub++;
   if($blub == 1000) $l = true;
} while($l == true);

Durchschnitt: 0.000309538841248 - Runs: 10

Code:

// Aufgabe
while($l == true) {
   $blub++;
   if($blub == 1000) $l = true;
}

Durchschnitt: 0.000294351577759 - Runs: 10

while schneller als do while.. Lächel gut zu wissen...
die runs liefen auf einen externen server mit gleichen bedingungen und beide 10x..

Lächel
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
graphicsandunity

Dabei seit: 22.11.2004
Ort: Berlin
Alter: 33
Geschlecht: Männlich
Verfasst Mi 16.02.2005 15:20
Titel

Antworten mit Zitat Zum Seitenanfang

LOL

Spitze.

Das ist doch mal den Gag wert gewesen. Grins
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
karmacoder

Dabei seit: 15.04.2002
Ort: Fürth
Alter: 35
Geschlecht: Männlich
Verfasst Mi 16.02.2005 15:38
Titel

Antworten mit Zitat Zum Seitenanfang

ist das jetzt ernst gemeint?
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
Account gelöscht


Ort: -
Alter: -
Verfasst Mi 16.02.2005 15:53
Titel

Antworten mit Zitat Zum Seitenanfang

*ha ha* *ha ha* *ha ha* Ich kack ab....


WO BLEIBT ENDLICH DER SMILIE MIT DEM TRICHTERHUT????


Zuletzt bearbeitet von am Mi 16.02.2005 15:53, insgesamt 1-mal bearbeitet
 
 
Ähnliche Themen While-Schleife in While-Schleife?
PHP While-Schleife ()
while schleife und innterhtml
MySQL/PHP - If-Abfrage in einer while-Schleife
While-Schleife für Datenbank-Abfrage mit PHP
Verschachtelte while-Schleifen
Neues Thema eröffnen   Neue Antwort erstellen Seite: Zurück  1, 2, 3  Weiter
MGi Foren-Übersicht -> Programmierung


Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst an Umfragen in diesem Forum nicht mitmachen.