 |
Das deutsche QBasic- und FreeBASIC-Forum Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
stef
Anmeldungsdatum: 13.01.2005 Beiträge: 102
|
Verfasst am: 25.04.2005, 16:43 Titel: TIMER mit Tastendruck beschleunigen |
|
|
Ich habe etwas sehr selzammes entdeckt.
Ich habe ein Programm geschrieben, bei dem ein Bild mit PSET Pixel für Pixel aufegabut wird. Als ich dann och eine kleine IF-Abfrage mit einbaute wurde das Programm plötzlich ungewöhnlich langsam. Dabei machte ich eine erstaunliche Entdeckung:
Wenn ich wärend des Bildaufbaus einfach die ganze Zeit über auf eine Taste drücke, dann geht das ganze viel schneller. Ich habe etwas rum experementiert und konnte den Befehl TIMER, der in der IF-Abfrage benutzt wurde als Schuldigen ausmachen.
Man kann das ganz leicht ausprobieren:
Code: | SCREEN 12
FOR x = 1 TO 600
FOR y = 1 TO 400
IF TIMER > 1000 THEN
PSET (x, y), 1
ELSE
PSET (x, y), 2
END IF
IF INKEY$ = CHR$(27) THEN END
NEXT y
NEXT x |
In diesem Beispiel wird die Farbfläche nur sehr langsam aufgebaut, es sei den, das man eine Taste runter drückt und gedrückt hält
Durch eine leichte Abänderung ist das Problem nicht mehr da:
Code: | SCREEN 12
Zeit = TIMER
FOR x = 1 TO 600
FOR y = 1 TO 400
IF Zeit > 1000 THEN
PSET (x, y), 1
ELSE
PSET (x, y), 2
END IF
IF INKEY$ = CHR$(27) THEN END
NEXT y
NEXT x |
Da frägt man sich doch, warum der TIMER-Befehl sich für die Tastertureingaben interessiert. |
|
Nach oben |
|
 |
dreael Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 2529 Wohnort: Hofen SH (Schweiz)
|
Verfasst am: 25.04.2005, 22:40 Titel: |
|
|
Ja, wirklich interessant, wenn man es unter Windows XP testet, d.h. bei reinem MS-DOS 6.22 gibt es diesen Effekt nicht... :-)
Der Systemmonitor verrät eigentlich bereits alles: XP scheint auch ohne INT 2Fh/AX=1680h bereits gewisse Multitasking-Optimierungen vorzunehmen: Tastenabfragen, bei denen nicht kommt, scheint das Betriebssystem die Rechenzeit zu entziehen. Sobald man Tastendrücke macht, wird ein kurzer Rechenzeit-Boost verpasst, denn die DOS-Anwendung soll ja schliesslich schnell antworten.
Erinnert mich an mein früheriges Apple PowerBook, welches ebenfalls die Rechenleistung bei Tastendruck kurz anhob und dann wieder senkte, so dass entsprechend lange Akkulaufzeiten möglich waren. _________________ Teste die PC-Sicherheit mit www.sec-check.net |
|
Nach oben |
|
 |
Mecki Igel

Anmeldungsdatum: 10.09.2004 Beiträge: 985 Wohnort: Niederbayern
|
|
Nach oben |
|
 |
ChemicalWarfare

Anmeldungsdatum: 15.09.2004 Beiträge: 152
|
Verfasst am: 26.04.2005, 15:08 Titel: |
|
|
das gleiche passiert auch ihm fenster wenn man die maus bewegt |
|
Nach oben |
|
 |
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
|