Für dieses Forum muß Javascript im Browser aktiviert werden!
Kommentar: Einfügen von HTML im Kommentar: Link einfügen: <a href="LINKURL" target="_blank">LINKTITEL</a> Bild einfügen: <img src="BILDURL"> Text formatieren: <b>fetter Text</b> <i>kursiver Text</i> <u>unterstrichener Text</u> Kombinationen sind auch möglich z.B.: <b><i>fetter & kursiver Text</i></b> C2 Quellcode formatieren: <code>Quellcode</code> ASM Quellcode formatieren: <asm>Quellcode</asm> (Innerhalb eines Quellcodeabschnitts ist kein html möglich.) Wichtig: Bitte mache Zeilenumbrüche, bevor Du am rechten Rand des Eingabefeldes ankommst ! > Hallo André, > > danke für die schnelle Antwort. > > > Hast Du vielleicht noch andere Threads laufen ? > Ja es laufen noch zwei Threads, alle mit der gleichen Prio. > > werde mich für dein 2tes Beispiel entscheiden, ist auch das > schnellste, und in Zukunft for-Schleifen so weit möglich umgehen. > > mfg Tom > > > Hallo Tom, > > > > Warum 28ms. Ich komme auf 7ms. > > Hast Du vielleicht noch andere Threads laufen ? > > Das würde die längere Laufzeit erklären. > > > > Übrigens, so kommst Du auf 6ms und es wäre auch eleganter: > > <font face="courier new" size=2> > > k=i*8; > > temp=IB[i]; > > for j = 0 ... 7 > > { > > IBit[k+j]= (temp shr j) and 1; > > }</font> > > > > Daß dies immernoch so lange dauert liegt zu einem daran, daß > > die For-Schleife selbst, also ohne Inhalt ca. 2ms benötigt und > > der Zugriff auf Array-Variablen immer relativ langsam ist. > > > > Und so wären es nurnoch 4ms: > > <font face="courier new" size=2> > > k=i*8; > > temp=IB[i]; > > IBit[k]= temp and 1; > > IBit[k+1]= (temp shr 1) and 1; > > IBit[k+2]= (temp shr 2) and 1; > > IBit[k+3]= (temp shr 3) and 1; > > IBit[k+4]= (temp shr 4) and 1; > > IBit[k+5]= (temp shr 5) and 1; > > IBit[k+6]= (temp shr 6) and 1; > > IBit[k+7]= (temp shr 7) and 1;</font> > > > > MfG André H. > > > > > > > Hallo zusammen, > > > > > > ich habe mich etwas mit Programmlaufzeiten beschäftigt. > > > Doch kann ich nicht ganz glauben was ich herausgefunden > > > habe. z.B. der folgende Programmausschnitt > > > > > > /* Startzeit festhalten */ > > > Startzeit=system.timer(); > > > > > > // Bits bearbeiten > > > for j = 0 ... <= 7 > > > { > > > if IB[i] & (1 shl j) IBit[(i*8)+j]=1; else IBit[(i*8)+j]=0; > > > } > > > > > > // letzte Laufzeit ermitteln > > > Laufzeit = system.timer()-Startzeit; > > > > > > In der Variable Laufzeit kann ich Werte von so ca. 26-28 > > > beobachten, und wenn ich das mit system.timer() richtig > > > verstanden habe sind das ms. Zwar wird die Schleife 8x > > > durchlaufen, aber so richtig glauben kann ich das mit > > > den rund 28ms nicht. Da ich bis jetzt noch keine Info > > > gefunden habe um dies mal nachzurechnen jetzt meine > > > Frage: Stimmt das alles so oder hab ich es nur nicht > > > verstanden? > > > > > > mfg Tom