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:

Performance/Geschwindigkeit von FB messen!

 
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
Heiko



Anmeldungsdatum: 28.07.2008
Beiträge: 101

BeitragVerfasst am: 30.10.2008, 12:51    Titel: Performance/Geschwindigkeit von FB messen! Antworten mit Zitat

Ich würde gern ein paar verschiedene Sprachen hinsichtlich ihrer Geschwindigkeit der erstellten Kompilate vergleichen.

Nun, was würdet ihr sagen, wie man mit einfachen Befehlen in FB sowas umzusetzen wäre, um zumindest grob einen Vergleich ziehen zu können.

Kann natürlich einfach von 0-x zählen lassen und zeit messen, aber das wäre, glaube ich nicht wirklich ein Vergleich.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Elektronix



Anmeldungsdatum: 29.06.2006
Beiträge: 742

BeitragVerfasst am: 30.10.2008, 13:01    Titel: Re: Performance/Geschwindigkeit von FB messen! Antworten mit Zitat

Heiko hat Folgendes geschrieben:
.

Kann natürlich einfach von 0-x zählen lassen und zeit messen, aber das wäre, glaube ich nicht wirklich ein Vergleich.

Diesen Vergleich habe ich mal gezogen, indem ich eine Zählschleife für ca. 1 Sekunde laufen lies (damals in Quick-Basic und QBasic auf einem alten Pentium 100MHZ). Das erstaunliche Ergebnis: Exe-Dateien waren bis zu 100mal schneller als der QBasic-Interpreter. Naja, das war eigentlich zu erwarten. Noch interessanter war: Wenn ich in QuickBasic einen QuickRun startet (mit STRG/F5), war die Zählung noch einen Tick schneller als die unabhängige Exe-Datei.

Wenn man die Schnelligkeit von Sprachen vergleicht, muß man allerdings mehrere Kriterien berücksichtigen:
1) es darf kein Multitasking stattfinden. Also nur unter DOS testen.
2) es sollten verschiedene Befehle verglichen werden, da der Maschinencode für den Printin Basic anders aussieht als z. B. fprint in C.
3) U. U. hängt die Performance auch vom verwendeten Compiler ab.
_________________
Und die Grundgebihr is aa scho drin- DOS is jo nett.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Heiko



Anmeldungsdatum: 28.07.2008
Beiträge: 101

BeitragVerfasst am: 30.10.2008, 13:27    Titel: Antworten mit Zitat

naja multitasking nicht zu nutzen kein problem.
Fakt ist aber, wenn wie du sagst, gleiche befehle auf verschiedenen system ungleich schneller oder langsamer sind, dies ja eben einen performancetest ausmacht, oder?

denn man nutzt ja die befehle der jeweiligen sprache....!

hast du nen beispiel um FReebasic mit einem anderen basic zu vergleichen?
nein, kein qb.

simples zählen???!!!???
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Elektronix



Anmeldungsdatum: 29.06.2006
Beiträge: 742

BeitragVerfasst am: 30.10.2008, 13:43    Titel: Antworten mit Zitat

Simples zählen in einem definierten Zeitraum kann schon was bringen. Als Zeitgeber mußt Du den Systemtakt abfragen, damit das unabhängig ist. Den Takt kannst Du mit Timer abfragen (zählt im Millisekundentakt, bei QBasic im 1/18-Sek-Takt)
Du baust also eine Standardzeitschleife und einen Zähler. Die Schleife bereicherst Du nur mit einem zusätzlichen Befehl, der überprüft wird. Dann läßt Du das ganze laufen und zählst die Schleifendurchläufe innerhalb der Zeit. (Zu Beginn kannst du die Schleife auch mal leer laufen lassen.
Aber es ergibt sich ja ganz einfach: Man muß zumindest die am häufigsten verwendeten Befehle mit analogen Funktionen aus anderen Sprachen vergleichen, um einigermaßen vernünftige Daten zu bekommen.

Beispiel:
Code:
Dim As Integer Zeit, Zeit2
Dim Counter As Integer = 0
Zeit = Timer
Print "Zeit = "; Zeit
Zeit = Zeit + 5
'***** Zeitschleife*****
Do
Zeit2 = Timer   
Counter = Counter + 1 '***** Zähler
'*********************
'Hier ist Platz für den zu überprüfenden Befehl
'*********************
Loop Until Zeit2 > Zeit '+ 1000
'***** Ende der Zeitschleife *****
Print "Zähler = ";Counter

Sleep


Andere Vergleiche bringen nur was, wenn Du den Assembler-Code der Sprache entschlüsseln und die Takte pro befehl verrechnen kannst.[/code]
_________________
Und die Grundgebihr is aa scho drin- DOS is jo nett.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 30.10.2008, 19:48    Titel: Antworten mit Zitat

Zitat:
naja multitasking nicht zu nutzen kein problem.

doch, ist es heutzutage. Zunge rausstrecken
wie Elektronix schon gesagt hat: richtiges single-tasking bekommst du nur unter einem DOS-System.
_________________
» Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
Nach oben
Benutzer-Profile anzeigen Private Nachricht 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