Benchmark

Auswahl, Einrichtung und Betrieb von Rechnern und Komponenten
Benutzeravatar
Dosenware
DOS-Gott
Beiträge: 3745
Registriert: Mi 24. Mai 2006, 20:29

Beitrag von Dosenware »

jor, doch haette sich das in den "nicht LBA"-Modi bemerkbar machen muessen, da dort jede Menge Bankswitching (laeuft ueber int 10) betrieben werden muss um den Grafikspeicher im Adressbereich $A000-$AFFF abzubilden.
bttr

Beitrag von bttr »

Nicht unbedingt. Die Frage ist ja, wie lange das Bank-Switching im Vergleich zum Schreiben von 64k Pixeln dauert.

(Über den "vbeFarPtr" ginge es am Int 10h vorbei, aber natürlich auch über's Video-BIOS.)
Benutzeravatar
Dosenware
DOS-Gott
Beiträge: 3745
Registriert: Mi 24. Mai 2006, 20:29

Beitrag von Dosenware »

habe da mal kurz etwas gebastelt, einen kleinen Benchmark der einmal die Zeichenroutine 0C von int10 nutzt und einmal den dierekten Videospeicherzugriff ueber $A000-$AFFF

damit duerfte sich auch die Auswirkung des Bioscachens nachweisen lassen.

hier downloadbar

Quelltext

wer fehler findet... ;-)

BTW. ich habe 2 Stunden damit verbracht, herauszufinden, dass der 2te Test derart abartig schnell laeuft, dass ich auf meinem Hauptrechner davon nichts zu sehen bekam *grummel* -> deshalb laeuft der jetzt 16mal oefter durch als der int10 Test.

EDIT:
@bttr

hast du evtl. eine bessere Zeiterfassungsroutine im petto, das gettime scheint u.U. falsche Werte zu liefern.
bttr

Beitrag von bttr »

Unter reinem DOS sollte GetTime() eigentlich problemlos funktionieren. Alternativen könntest du den BIOS-Timer Tick verwenden. Den findest du an Adresse $0040:$006C. Geht aber auch "nur" unter purem DOS.

Wenn du's ganz genau wissen willst, dann Kris Heidenstroms PC Timing FAQ.

EDIT: http://user.blue-cable.de/~b02/mabau/ finde ich ja viel spannender. :lol:

EDIT2: Evtl. liegt das Zeitproblem auch in zeitumrechn(). Turbo Pascal ist da manchmal etwas zickig, wenn es um die Berechnung von kleinen Typen (Word) in große Typen (Longint) geht. Bei den Zwischenergebnissen findet ein Überlauf statt, weil z.B. das Ergebnis von 59 min x 6000 = 354.000 nicht mehr in ein Word (max. 65535) paßt. Daher mußt du manuell auf Longint "type-casten".

Code: Alles auswählen

zeitumrechn:=Longint(Hour*360000)+Longint(Minute*6000)+(Second*100)+Sec100;
Benutzeravatar
Dosenware
DOS-Gott
Beiträge: 3745
Registriert: Mi 24. Mai 2006, 20:29

Beitrag von Dosenware »

bttr hat geschrieben: EDIT: http://user.blue-cable.de/~b02/mabau/ finde ich ja viel spannender. :lol:
die Seite meiner Mutter...eigene Wohnung war bisher finanziell nicht moeglich, aber diese ist bereits in Sicht....

ich werde erstmal die Textausgabe umbasteln, damit umleitungen funktionieren.
Benutzeravatar
Dosenware
DOS-Gott
Beiträge: 3745
Registriert: Mi 24. Mai 2006, 20:29

Beitrag von Dosenware »

@bttr
ok, textausgabe ist auf int 21h umgestellt (man koennt ich kotzen, dass das in Pascal integrierte Assembler offenbar keine ordentlichen Offset und Segmentadressen zurueckliefert...)

kennst du eine funktion mit der ich Zahlen (nach moeglichkeit von byte bis comp) in Strings umwandeln kann?
bttr

Beitrag von bttr »

ok, textausgabe ist auf int 21h umgestellt
Dazu reicht es einfach die unnötige Unit Crt aus deiner Uses-Anweisung zu entfernen.
(man koennt ich kotzen, dass das in Pascal integrierte Assembler offenbar keine ordentlichen Offset und Segmentadressen zurueckliefert...)
Doch, doch. Das macht er schon. Man muß aber wissen, was man tut 8-) bzw. wie der Compiler intern arbeitet. (Buch "Turbo Pascal intern" von Michael Tischer, "PC intern" ginge auch)
kennst du eine funktion mit der ich Zahlen (nach moeglichkeit von byte bis comp) in Strings umwandeln kann?
Und was für Strings? Zahlensystem? Guck doch mal im SWAG-Archiv.
Benutzeravatar
Dosenware
DOS-Gott
Beiträge: 3745
Registriert: Mi 24. Mai 2006, 20:29

Beitrag von Dosenware »

bttr hat geschrieben:
ok, textausgabe ist auf int 21h umgestellt
Dazu reicht es einfach die unnötige Unit Crt aus deiner Uses-Anweisung zu entfernen.
du gestattest, das ich mich jetzt ersteinmal ein wenig aergere?
.
.
.
so genug geaergert...
(man koennt ich kotzen, dass das in Pascal integrierte Assembler offenbar keine ordentlichen Offset und Segmentadressen zurueckliefert...)
Doch, doch. Das macht er schon. Man muß aber wissen, was man tut 8-) bzw. wie der Compiler intern arbeitet. (Buch "Turbo Pascal intern" von Michael Tischer, "PC intern" ginge auch)[/quote]

sag mal...

"OFS(irgendwas)" und "SEG(irgendwas) liefern was anderes als "OFFSET irgendwas" und "SEG irgendwas" nur warum?
Und was für Strings? Zahlensystem? Guck doch mal im SWAG-Archiv.
hat sich erledigt...*sichnochmalaergert*
bttr

Beitrag von bttr »

Vielleicht sollten wir dafür einen neuen Thread in der neuen Programmierecke aufmachen? ;-)

Gib mir mal bitte 'nen Beispiel-Quellcode, wo du meinst, daß da vom Compiler was falsch gemacht wird! Und bitte auch die Compiler-Version angeben.
Benutzeravatar
5u3
Kommandozeilenfetischist
Beiträge: 184
Registriert: Do 21. Sep 2006, 17:05
Wohnort: Wien

Beitrag von 5u3 »

Ein paar weitere Benchmarkwerte zum Vergleich (falls es Euch interessiert :) )
Alle Tests im Modus 100 (640x400, 6bpp, LFB)

Intel 486 DX4, Asus PVI-486SP3 (SiS 496/497), Hercules Dynamite 128 (Tseng ET6000):

Code: Alles auswählen

10,6 FPS - 120 MHz (FSB40x3.0)
 8,8 FPS - 100 MHz (FSB33x3.0)
 7,2 FPS -  66 MHz (FSB33x2.0)
 5,4 FPS -  50 MHz (FSB25x2.0)
AMD K6-III, Asus P5A (ALI Aladdin V), 3dfx Voodoo 5 5500 (3dfx VSA100):

Code: Alles auswählen

54,0 FPS - 500 MHz (FSB100x5.0)
50,2 FPS - 400 MHz (FSB100x4.0)
34,7 FPS - 266 MHz (FSB066x4.0)
25,5 FPS - 166 MHz (FSB066x2.5)
... und nur so zum Spaß:
AMD AthlonXP, DOSBox 0.65, Dynamic core, 500000 Cycles: 116,2 FPS :shock:
Scherz beiseite, mit DOSBox lassen sich die FPS fast beliebig hochtreiben, aber DOSBox kann ziemlich schnell sein, wenn es keinen Sound zu emulieren gibt :)
Benutzeravatar
CptKlotz
Admin a.D.
Beiträge: 2947
Registriert: Mo 7. Mär 2005, 23:36
Wohnort: Dorsten
Kontaktdaten:

Beitrag von CptKlotz »

... und nur so zum Spaß:
AMD AthlonXP, DOSBox 0.65, Dynamic core, 500000 Cycles: 116,2 FPS Shocked
Scherz beiseite, mit DOSBox lassen sich die FPS fast beliebig hochtreiben, aber DOSBox kann ziemlich schnell sein, wenn es keinen Sound zu emulieren gibt Smile
Interessant... Ich würde schätzen, daß DosBox auf meinem AthlonXP 2800+ so etwa die Geschwindigkeit eines mittleren 486ers erreicht (~DX33...DX2/50). Das wären im Benchmark keine 10 fps...

Mein PentiumII 233 Mhz erreicht im PCP-Bench so um die 26 fps...

Irgendwas muß da in DosBOX wohl passieren, was den Benchmark verrückt macht :-)
“It is impossible to defeat an ignorant man in argument.” (William G. McAdoo)
Benutzeravatar
Odin
DOS-Guru
Beiträge: 712
Registriert: Fr 3. Feb 2006, 16:52

Beitrag von Odin »

Aus Langeweile habe ich eine Übersicht über die Benchmarks erstellt. Wer also noch etwas hinzufügen möchte... einfach hier posten, ich mache das dann.

Die grün markierten sind die jeweils besten Ergebnisse für die entsprechende Grafikkarte.

Das soll übrigens eine Ergänzung zum Hardware-Archiv werden (an dem ich auch immer wieder bastle), deshalb gebt mir hier bitte keine Fantasie-Ergebnisse...

@5u3: Könntest du mir noch die Größe des Arbeitsspeichers für die beiden Rechner geben (der Vollständigkeit halber)?

@Silver_Scale: Mit deinem Pentium II 233 bist du übrigens mit Abstand der Beste... das wird aber nicht so bleiben, ich ramme das Teil noch mit 'nem ollen P1 in den Boden... wart's nur ab :lol:

Uups, Link vergessen :oops: hier klicken
"640k ought to be enough for anybody." - Bill Gates (1981)
"Windows 95 needs at least 8MB RAM." - Bill Gates (1996)
... also braucht niemand Windows 95 !!!
bttr

Beitrag von bttr »

Dann schreib' doch den Satz "Die grün markierten..." noch mit auf die Seite, falls dort mal jemand per Google landet. :-)

Und wieso ist der PII mit Abstand der Beste? Die höchsten FPS-Werte liefert doch 5u3s (54,0) bzw. mein PC (51,5).
Benutzeravatar
Odin
DOS-Guru
Beiträge: 712
Registriert: Fr 3. Feb 2006, 16:52

Beitrag von Odin »

Da wird (und soll erstmal) keiner mit Google landen...

Der PII ist auf die Gesamtzahl der Grafikkarten gesehen der beste. Dein Rechner und der von 5u3 sind ja "nur allein". Und außerdem sind die ja auch nicht so ganz DOS-mäßig :-)
"640k ought to be enough for anybody." - Bill Gates (1981)
"Windows 95 needs at least 8MB RAM." - Bill Gates (1996)
... also braucht niemand Windows 95 !!!
Benutzeravatar
5u3
Kommandozeilenfetischist
Beiträge: 184
Registriert: Do 21. Sep 2006, 17:05
Wohnort: Wien

Beitrag von 5u3 »

Odin hat geschrieben:@5u3: Könntest du mir noch die Größe des Arbeitsspeichers für die beiden Rechner geben (der Vollständigkeit halber)?
Der 486er hat 64 MB FPM RAM, der K6-III hat 256 MB SDRAM.

Die VBE-Versionen der beiden Karten sind v2.0 für die ET6000 und 3.0 für die V5. Alle Tests wurden ohne UniVBE durchgeführt (macht keinen Unterschied bei meinen Karten).

Ich möchte noch hinzufügen, daß die Ergebnisse bei untypischen Bus/CPU-Taktraten einen Vergleich eher schwierig machen. Wenn das Ganze aussagekräftig sein soll, nehmt die Werte für DX4/50, DX4/66, DX4/120, K6-III/166 und K6-III/266 lieber wieder raus, weil diese Prozessoren normalerweise nicht mit diesen Takten betrieben werden :)

Was haltet Ihr davon, auch das Bussystem und den Speicherausbau der Karten in der Tabelle festzuhalten? Bei vielen Grafikchipsets haben diese beiden Faktoren Einfluß auf das Ergebnis.
Antworten