Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Interrupt 21 (https://www.delphipraxis.net/6553-interrupt-21-a.html)

Dr_C 14. Jul 2003 22:44


Interrupt 21
 
Hi
DOS Interrupt 21 :
Ist er noch unter win 2000/XP verfügbar ? Hauptsächlich geht um dateien
lesen-schreiben .

Wenn nicht , dann wie kann ich es anders in assembler machen .
Es geht mir um geschwindichkeit , da ich große log-dateien durchsuche , und von ergebnis hängt es ab in welche datei es gespeichert wird.

Wenn ich das ergebnis in delphi-pascal noch mal auswerte wo es gespeichert sein soll ( in asm wird auch schon ausgewertet ) habe wieder geschwindichkeitsverluste .

Es geht um dateien mit ca 1-2 GigaByte .Ca 80% davon wird als 'gut' ausgewertet und auf bis zu 1000 dateien zerteilt wobei auch geprüft wird, ob die daten sind schon vorhanden sind oder nicht, damit es nicht alles doppelt und dreifach dinne steckt .

nochmal kurz was ich genau brauche :
a) datei lesen in buffer
b) buffer in datei schreiben

ich suche auch ein gutes buch über assembler-programierung unter delphi.

Mfg

jbg 14. Jul 2003 23:10

Re: Interrupt 21
 
Zitat:

Zitat von Dr_C
Hi
DOS Interrupt 21 :
Ist er noch unter win 2000/XP verfügbar ? Hauptsächlich geht um dateien
lesen-schreiben .

Ja den gibt es noch. Er ist aber nur für reine DOS-Anwendungen nutzbar. Win NT/2000/XP bringt sofort eine "Priviligierte Anweisung" System-Exception.


Zitat:

Wenn ich das ergebnis in delphi-pascal noch mal auswerte wo es gespeichert sein soll ( in asm wird auch schon ausgewertet ) habe wieder geschwindichkeitsverluste .
Bist du dir sicher, dass die Assembler-Version schneller als der vom Compiler optimierte Code ist? Bei heutigen Prozessoren kann eine in ASM geschrieben Funktion um weiten hinter dem vom dcc32 erzeugten Code liegen.

Zitat:

a) datei lesen in buffer
b) buffer in datei schreiben
Du könntest ReadFile/WriteFile benutzen.


Zitat:

ich suche auch ein gutes buch über assembler-programierung unter delphi.
Wenn du schon Assembler kannst und nur die integration in Delphi kennenlernen willst, ist die Online Hilfe zum integrierten Assembler (wenn man sie wirklich Wort für Wort liest) sehr informativ. Das Kapitel "Aufrufkonventionen" verrät auch noch ein paar Einzelheiten.



Hast du den Code auch schon in Delphi "vorprogrammiert", bei dem du die Geschwindigkeitsprobleme festgestellt hast? Wenn ja, den kann man sicherlich um einiges optimieren. Dynamische Arrays und HugeStrings sowie TMemoryStream solltest du nicht gewöhnlich benutzen, wenn es um Geschwindigkeit geht.


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:34 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz