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> C Quellcode formatieren: <code>Quellcode</code> BASIC Quellcode formatieren: <basic>Quellcode</basic> (Innerhalb eines Quellcodeabschnitts ist kein html möglich.) Wichtig: Bitte mache Zeilenumbrüche, bevor Du am rechten Rand des Eingabefeldes ankommst ! -> I > Hallo Peter > > > Wie schon mehrfach beschrieben, ist die Portausgabe nicht hoch optimiert und benötigt 5 Bytecodes. > > Ich habe mir den vom Compiler erzeugten Bytecode kurz angesehen. Wenn ich das richtig deute, dann > ist der Zugriff auf Ports deshalb langsam, weil Biblioheks-Routinen benutzt werden. Bereits für die > Übergabe der zwei Parameter werden vier Bytecode-Instruktionen benötigt. Wie schnell die > Biblioheks-Routine arbeiten, läßt sich nur vermuten. Die CC1-kompatiblen Kontroller besitzen > Befehle zum Portzugriff bereits im eingebauten Befehlsumfang und sind deshalb im Vorteil. > > Es kann natürlich vermutet werden, daß alle per Bibliothek implementierten Funktionen eine ähnlich > schlechte Performance aufweisen. > > > Und wie auch schon geschrieben, sollte der Bedarf da sein (zumindest für Rechtecksignale nicht) so > > kann ich einen spezialisierten Bytecode einbauen. Dann würde das Beispielprogramm nur 5 Bytecodes > > benötigen. Das wären dann schon 48.000 Durchläufe/s. > > Dieser Rechnung kann ich nicht ganz folgen. Jetzt besteht die Schleife aus 5*4+1 Bytecode-Instruktionen > und daher sollte das Programm nach Deiner Rechnung 30000*(5*4+1)/240000 = 2.625 Sekunden benötigen. > Nach Deinen Messungen sind es aber 4.99 Sekunden. > > > Der Löwenanteil an der Abarbeitung eines Bytecodes sind der Bytecode Fetch und Sprung in die Bytecode > > Routine. Dies ist bei einer Harvard Architektur wie dem Atmel Risc eine zeitlich kostspielige Sache. Alleine > > ca. 30 Taktzyklen gehen dafür drauf. > > Das ist keine Frage der Architektur. Die 6808-CPU ist dabei auch nicht schneller. Übrigens werden > auch in den relevanten Codeteilen der B-Control etwa 35 Taktzyklen benötigt. > > Dietmar