Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

FB-dicht an Asm..

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
ytwinky



Anmeldungsdatum: 28.05.2005
Beiträge: 2624
Wohnort: Machteburch

BeitragVerfasst am: 23.03.2007, 23:18    Titel: FB-dicht an Asm.. Antworten mit Zitat

Hi,
eigentlich wollte ich nur aus ComSpec das SystemVerzeichnis erhalten..
..doch dafür brauchte ich eine Revers-Funktion. Es ist keine Schwierigkeit,
sowas mit Mid() zu schreiben und es funktionierte auch..
..da fiel mir ein, das Volta mal sowas in Asm gemacht hatte.
Mid() ist nun mal ein sehr zeitintensiver Befehl und so habe ich verglichen.
Das Ergebnis fiel wie erwartet aus und da habe ich an der Mid-Version ein wenig
herumoptimiert und siehe da: verdammt dicht an Asm..
Gruß
ytwinky
_________________
v1ctor hat Folgendes geschrieben:
Yeah, i like INPUT$(n) as much as PRINT USING..
..also ungefähr so, wie ich GOTO..
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Eternal_pain



Anmeldungsdatum: 08.08.2006
Beiträge: 1783
Wohnort: BW/KA

BeitragVerfasst am: 23.03.2007, 23:33    Titel: Antworten mit Zitat

ganze netter source, hab mit asm und ind allerdings sehr schwankende werte zwischen 1.0 und 5.5 währen der mid recht konstant wischen 1.0 und 2.5 liegt ?!
_________________
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger
ytwinky



Anmeldungsdatum: 28.05.2005
Beiträge: 2624
Wohnort: Machteburch

BeitragVerfasst am: 24.03.2007, 00:31    Titel: Antworten mit Zitat

Nun ja, ich habe ja extra dabeigeschrieben, daß die Werte mit Timer ermittelt werden..
Ich wollte ja auch nur wissen, ob es große Unterschiede gibt..
..bei mir ist es(weil sonst wenig läuft grinsen)
Mid ~1.8
Asm ~1.30
Ind ~1.34
(Die Werte sind aus mehreren Versuchen gemittelt, Ausreißer sind nicht berücksichtigt..)
Die Exponenten habe ich hier mal weggelassen..
Auf alle Fälle zeigt das Beispiel, daß Mid() gerade in Schleifen nicht das Gelbe vom Ei ist zwinkern
..wenn es möglich ist, den Mid-Befehl durch Chr() zu ersetzen. grinsen
Gruß
ytwinky
_________________
v1ctor hat Folgendes geschrieben:
Yeah, i like INPUT$(n) as much as PRINT USING..
..also ungefähr so, wie ich GOTO..
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
volta



Anmeldungsdatum: 04.05.2005
Beiträge: 1876
Wohnort: D59192

BeitragVerfasst am: 24.03.2007, 12:15    Titel: Antworten mit Zitat

Hi,
hier hat MichaelW eine sehr gute Benchmark-Methode geschrieben: http://www.freebasic.net/forum/viewtopic.php?p=34325
Die ermittelt die minimalste Anzahl der Taktzyklen pro Test. Wenn man den Test oft genug ausführt ist (hoffentlich) einer dabei der ohne Unterbrechung optimal abläuft.
Testergebnis: grinsen
Code:
Original:Hello FB-World!
Reverse :!dlroW-BF olleH
Original:Hello FB-World!
SystemDir=C:\WINDOF
Mid=..manu muraq sert setrap ni asivid sinmo tse aillag
Reverse(Ori &=diM) : 39275 cycles

Asm=..manu muraq sert setrap ni asivid sinmo tse aillag
Revers(Ori &=msA) : 1988 cycles

Ind=..manu muraq sert setrap ni asivid sinmo tse aillag
ReverseInd(Ori &=dnI) : 2689 cycles

(pretty close to Asm and 'far' away from Mid()..)

_________________
Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
ytwinky



Anmeldungsdatum: 28.05.2005
Beiträge: 2624
Wohnort: Machteburch

BeitragVerfasst am: 24.03.2007, 15:47    Titel: Antworten mit Zitat

Hi volta,
ich wußte, daß du etwas dazu schreiben würdest zwinkern
Freundlicherweise bestätigen deine Messungen meine Schätzungen per Timer grinsen
volta hat Folgendes geschrieben:
Code:
Testergebnis: :D
Code:
Original:Hello FB-World!
Reverse :!dlroW-BF olleH
Original:Hello FB-World!
SystemDir=C:\WINDOF
Mid=..manu muraq sert setrap ni asivid sinmo tse aillag
Reverse(Ori &=diM) : 39275 cycles

Asm=..manu muraq sert setrap ni asivid sinmo tse aillag
Revers(Ori &=msA) : 1988 cycles

Ind=..manu muraq sert setrap ni asivid sinmo tse aillag
ReverseInd(Ori &=dnI) : 2689 cycles

(pretty close to Asm and 'far' away from Mid()..)

..war mir irgendwie klar, daß du keine Standard-Windowsinstallation hast lachen
Gruß
ytwinky
_________________
v1ctor hat Folgendes geschrieben:
Yeah, i like INPUT$(n) as much as PRINT USING..
..also ungefähr so, wie ich GOTO..
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC. Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
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.

 Impressum :: Datenschutz