Vergleich: Win11 /Linux mit Purebasic, Freebasic, Blitzmax

Hier könnt Ihr gute, von Euch geschriebene Codes posten. Sie müssen auf jeden Fall funktionieren und sollten möglichst effizient, elegant und beispielhaft oder einfach nur cool sein.
Blitzer
Beiträge: 79
Registriert: 26.09.2004 14:33
Wohnort: Lower Saxony

Vergleich: Win11 /Linux mit Purebasic, Freebasic, Blitzmax

Beitrag von Blitzer »

Hallo,

ich habe ein kleines Benchmark Programm unter Purebasic, Freebasic und Blitzmax erstellt und unter Win11 und Linux (LMDE) compiliert.

Siehe unter: https://www.purebasic.fr/english/viewtopic.php?t=78172
Lediglich die Klammersetzung musste etwas angepasst werden.

Der Vorteil liegt in der Benutzung eines einzelnen Gerätes für Win11 und Linux. Die einzelnen Softwarevarianten können nun direkt in der Geschwindigkeit ihrer Abarbeitung verglichen werden. Die Nachkommastellen (absolute Zahlen) sind nicht von Interesse. Es handelt sich hier um Delta-Messungen, also der Vergleich zwischen den Werten. Sie sollen augenscheinlich einen Trend aufzeigen.

1) Purebasic:

Code: Alles auswählen

EnableExplicit
Define x.d = 1
Define i.i = 0

OpenConsole()
PrintN("Prime numbers from 0 to 99.999.998 ...")
PrintN("Benchmark for Windows with PureBasic 6.00 - 64 bit")

Define StartTime.d = ElapsedMilliseconds()

  For i = 0 To 99999998
    x = ((i+i+2*i)+0.621) /x
  Next
 
Define EndTime.d = (ElapsedMilliseconds() - StartTime) / 1000
PrintN("It took " + StrD(EndTime) + " seconds to complete.")
PrintN("Result: " + StrD(x))
PrintN("Press ENTER to exit. . .")
Input()
CloseConsole()
2) Freebasic:

Code: Alles auswählen

Dim as Integer i
Dim as Double start,dauer
Dim x As Double
Open Cons For Input As #1
Open Cons For Output As #2

Print "Prime numbers from 0 to 99.999.998 ..."
Print "Benchmark for Windows with Freebasic 1.09 - 64 bit"

start = Timer

  For i = 0 To 99999998
    x = ((i+i+2*i)+0.621) / x
  Next

Dauer=(Timer-start)

Print "It took " + Str(Dauer) + " seconds to complete."
Rem Print "Results: " + Str(x)
Print "Press Enter to exit. .."
Sleep
Close 
3) Blitzmax-ng:

Code: Alles auswählen

SuperStrict

Global x:Double=1
Global i:Int=0

Print "Prime numbers from 0 to 99.999.998 ..."
Print "Benchmark for Windows with Blitzmax-ng - 64 bit"

Local start:Int = MilliSecs()

  For Local i:Int = 0 To 99999998
    x = (((i+i+2*i)+0.621) / x)
  Next

Print "It took "+(MilliSecs()-start)+" milliseconds to complete."
Print "Result: " + x
Input "Press ENTER To Exit. .."
Ungefähres Ergebnis in Sekunden:
[Win11 + Purebasic: 0,471] [Win11 + Freebasic: 0,407] [Win11 + Blitzmax-ng: 0,318]
[Linux + Purebasic: 0,492] [Linux + Freebasic: 0,419] [Linux + Blitzmax-ng: 0,334]

Wie man unschwer erkennen kann, dauerte die Abarbeitung unter Linux etwas länger (3% - 5%).
Mit dem Vergleich Purebasic zu Blitzmax-ng dauerte die Abarbeitung für Purebasic ca. 50% länger.
Zwischen Win11 / Blitzmax-ng zu Linux / Purebasic ergeben sich ca. 55 Prozent Unterschied.

Noch ein Wort zu Linux:
LMDE (LinuxMintDebianEdition) baut nicht auf Ubuntu sondern direkt auf Debian auf und gilt als das etwas schnellere Linux-System. Compiliert wurde mit dem akt. Standard (gcc v.10) und dem noch frischen gcc v.12.2. Ein Gechwindigkeitsvorteil konnte nicht festgestellt werden.

Blitzer
(Ich wünsche jeden der mich kennt, 10 x soviel wie er mir gönnt)
Benutzeravatar
dige
Beiträge: 1183
Registriert: 08.09.2004 08:53

Re: Vergleich: Win11 /Linux mit Purebasic, Freebasic, Blitzmax

Beitrag von dige »

Was ist denn Blitzmax, dass scheint ja sehr interessant zu sein. Vor allem das man damit auch Apps erstellen kann. Wer ist denn der Hersteller? https://blitzmax.org/docs/en/site/about/ sagt nur "Todo" ;-)
"Papa, mein Wecker funktioniert nicht! Der weckert immer zu früh."
Blitzer
Beiträge: 79
Registriert: 26.09.2004 14:33
Wohnort: Lower Saxony

Re: Vergleich: Win11 /Linux mit Purebasic, Freebasic, Blitzmax

Beitrag von Blitzer »

Hallo,

es gibt viele Basic-Dialekte. Blitzmax ist nicht mehr kommerziell, leider.

BlitzMax:
https://de.wikipedia.org/wiki/Blitz_Basic#BlitzMax

Googlen lohnt sich ...

Liste der Basic-Dialekte:
https://de.wikipedia.org/wiki/Liste_von_BASIC-Dialekten

Blitzer
(Ich wünsche jeden der mich kennt, 10 x soviel wie er mir gönnt)
ccode_new
Beiträge: 1214
Registriert: 27.11.2016 18:13
Wohnort: Erzgebirge

Re: Vergleich: Win11 /Linux mit Purebasic, Freebasic, Blitzmax

Beitrag von ccode_new »

Hallo Blitzer,

solche Vergleiche sind ziemlich irrelevant und haben keinen besonders hohen Aussagewert.
Es kommt hierbei vielmehr darauf an wie (mit welchen Möglichkeiten der jeweiligen Programmiersprache) man das Programm schreibt und auch ggf. optimieren kann.

Das PureBasic-Programm kann z.B. auch 3x so schnell sein, wenn es anders programmiert wurde.
Betriebssysteme: div. Windows, Linux, Unix - Systeme

no Keyboard, press any key
no mouse, you need a cat
Benutzeravatar
TroaX
Beiträge: 661
Registriert: 08.03.2013 14:27
Computerausstattung: PC: Ryzen 9 3950X, 96 GB RAM, RX6800XT, 2.5 TB SSD, 21:9 Display, Pop_OS! | Lappi: Ryzen 7 5800H, 16 GB RAM, 1 TB SSD, Pop_OS!
Wohnort: NRW
Kontaktdaten:

Re: Vergleich: Win11 /Linux mit Purebasic, Freebasic, Blitzmax

Beitrag von TroaX »

Außerdem ist der Leistungsvergleich zur Laufzeit immer etwas schwierig. Sinnvoller wäre es immer, die Leistung mit einem externen Tool zu testen und es müsste zudem die Anzahl der verwendeten Threads sowie der Speicherverbrauch berücksichtigt werden. Die Daten geben mehr Aufschluss darauf, ob Optimierungen das Ergebnis verfälschen. Nicht selten ist ein Prozess schneller unterwegs, verbraucht aber teils deutlich mehr Speicher oder verwendet mehrere Threads, obwohl bewusst im Code nur der Mainthread verwendet wird. Noch besser sind solche Test vor allem, wenn während dieser Tests verschiedenste Aufgaben abgearbeitet werden. Wo das eine Toolset glänzt, kann ein anderes schwächeln. Bei der nächsten Aufgabe kann es genau anders sein ;)
PC: Ryzen 9 3950X | 96 GB RAM | RX6800XT | 2,5 TB NVMe | Pop_OS!
Notebook: 16" 3:2 | Ryzen 7 5800H | 16 GB RAM | Radeon Vega | 1TB NVMe | Pop_OS!
NAS: Fritz.Box :lol:
Coding: Purebasic 6.04 | PHP | HTML | CSS | Javascript
Blitzer
Beiträge: 79
Registriert: 26.09.2004 14:33
Wohnort: Lower Saxony

Re: Vergleich: Win11 /Linux mit Purebasic, Freebasic, Blitzmax

Beitrag von Blitzer »

@TroaX
@ccode_new

Ist es wirklich für Euch irrelevant und hat es tatsächlich keinen hohen Aussagewert? Nun ja, das sehe ich ganz anders. Ich lasse Eure Meinung für mich nicht gelten.

Blitzer
(Ich wünsche jeden der mich kennt, 10 x soviel wie er mir gönnt)
Benutzeravatar
TroaX
Beiträge: 661
Registriert: 08.03.2013 14:27
Computerausstattung: PC: Ryzen 9 3950X, 96 GB RAM, RX6800XT, 2.5 TB SSD, 21:9 Display, Pop_OS! | Lappi: Ryzen 7 5800H, 16 GB RAM, 1 TB SSD, Pop_OS!
Wohnort: NRW
Kontaktdaten:

Re: Vergleich: Win11 /Linux mit Purebasic, Freebasic, Blitzmax

Beitrag von TroaX »

Das hast du richtig erkannt. Denn es hilft einem Programmierer null, das während der Ausführung eine Sprache langsamer ist als eine andere, wenn einem die Sprache selbst nicht hilft, seine Aufgaben effizienter und spezifischer zu erledigen. Nehmen wir meine große Hass-Liebe Python. Der Faktor, der Python langsamer ist als C, der ist schon hoch 2-stellig. "Faktor". Dagegen sind die 50 % völlig zu vernachlässigen (Faktor 1,5). Und trotzdem würde ich eine Kombination aus Python und Flet vorziehen, wenn ich ein monolithisches Webtool schreiben müsste, anstatt das ganze mit Purebasic zu versuchen. Und vor allem Spiderbasic.

Wenn ich eine mobile App schreiben will, nutze ich die Kombi Dart + Flutter. Auch hier hilft mir weder Purebasic noch Spiderbasic weiter. Purebasic ist für mich selbst nur joch ein Versuchsbaukasten, wobei mit einer Flutter-Integration mich dann PB doch nochmal wuschig machen würde :D (wäre möglich ... siehe Flet unter Python).

Java, C#, Javascript/Typescript unter Node/Deno, PHP, Python, Dart, Kotlin, Julia, Scala, Go, Delphi ... All diese Sprachen sind im Mittel stellenweise deutlich langsamer als Purebasic. Und wen interessierts? Über die ganzen Sprachen wird geredet. Über Purebasic fast nur in den offiziellen Foren.

Das Benchmarken von Sprachen mag für den einen oder anderen interessant sein. Aber den meisten ist es wumpe. Sonst würden viele der heute beliebten Sprachen schon längst wieder in der Versenkung verschwunden sein.
PC: Ryzen 9 3950X | 96 GB RAM | RX6800XT | 2,5 TB NVMe | Pop_OS!
Notebook: 16" 3:2 | Ryzen 7 5800H | 16 GB RAM | Radeon Vega | 1TB NVMe | Pop_OS!
NAS: Fritz.Box :lol:
Coding: Purebasic 6.04 | PHP | HTML | CSS | Javascript
ccode_new
Beiträge: 1214
Registriert: 27.11.2016 18:13
Wohnort: Erzgebirge

Re: Vergleich: Win11 /Linux mit Purebasic, Freebasic, Blitzmax

Beitrag von ccode_new »

Solche kleinen Tests sind schon ganz gut für die Statistik, aber nicht um wirkliche relevante Performance-Aussagen zwischen den einzelnen Compilern zu treffen.

Komplexe Programme mit vielen verschiedenen Aufgaben eignen sich da deutlich besser.

Welche der genannten Basic-Dialekte liegt dir den am besten?
Mit welcher dieser Sprachen kommst du am "effektivsten" zurecht?
Betriebssysteme: div. Windows, Linux, Unix - Systeme

no Keyboard, press any key
no mouse, you need a cat
Blitzer
Beiträge: 79
Registriert: 26.09.2004 14:33
Wohnort: Lower Saxony

Re: Vergleich: Win11 /Linux mit Purebasic, Freebasic, Blitzmax

Beitrag von Blitzer »

@ccode_new
@Troax

Überzeugt mich bitte, z.B. mit Code der 3 mal schneller ist, oder irgendwelche Benchmark-Programme, die die Ergebnisse anders bewerten.

Und auch keine Gegenfragen bitte die in eine andere Richtung lenken sollen, sondern beweisbares. Ich habe Eingangs Fakten geliefert, die untersucht werden können. Das Ergebnis ist abzuwarten. Ich möchte nur Ergebnisse und sonst nichts.

Was bitte schön kann man denn an einer Schleife besser machen? Das ist der Punkt. Eine Schleife ist für die Berechnung von Primzahlen erforderlich.

Ich lerne gerne dazu.

Blitzer
(Ich wünsche jeden der mich kennt, 10 x soviel wie er mir gönnt)
ST4242
Beiträge: 42
Registriert: 29.10.2011 16:54

Re: Vergleich: Win11 /Linux mit Purebasic, Freebasic, Blitzmax

Beitrag von ST4242 »

Hallo
kleine Frage arbeiten alle Basic Dialekte mit 64 Bit Integern oder eventuell mit 32 Bit?

Dies könnte die Unterschiede ebenso erklären.

Gruß
Antworten