Performance der Ubuntu Bash auf Windows 10 ("Creators Update")
Da ich ja schon gestern auf die Möglichkeiten der (Ubuntu) Bash auf Windows 10 Creators Update und Delphi eingegangen bin, habe ich mal einen kleinen Performance Test gegenüber einer normalen Ubuntu-Installation gemacht.
Dazu habe ich ein einfaches Quicksort benutzt:
program QuickSort; {$APPTYPE CONSOLE} uses SysUtils, System.Diagnostics, System.Timespan; const maxLen = 100000000; type stip = array [1 .. maxLen] of integer; var i: integer; s: stip; Stopwatch: TStopwatch; Elapsed: TTimeSpan; Seconds: Double; procedure pQuickSort(var a: stip; lo, hi: integer); procedure sort(p, r: integer); var i, j, x, y: integer; begin i := p; j := r; x := a[(p + r) div 2]; repeat while a[i] < x do i := i + 1; while x < a[j] do j := j - 1; if i <= j then begin y := a[i]; a[i] := a[j]; a[j] := y; i := i + 1; j := j - 1; end; until i > j; if p < j then sort(p, j); if i < r then sort(i, r); end; begin sort(lo, hi); end; begin Write('Init....'); for i := 1 to maxLen do begin s[i] := Random(maxLen) end; WriteLn('Done'); Stopwatch := TStopwatch.StartNew; Write('Sorting....'); pQuickSort(s, 1, maxLen); WriteLn('Done'); Elapsed := Stopwatch.Elapsed; Seconds := Elapsed.TotalSeconds; WriteLn; WriteLn(Seconds.toString); readln; end.
Ergebnisse (getitelt aus 3 Durchläufen):
- Ubuntu (direkt bzw als VM mit 4 CPUs/4 GByte RAM)
17,43 / 17,22 / 17,10 Sekunden = 17,25 Sekunden - Bash on Windows (auf dem gleichen Rechner in einer separatem VM mit 4 CPUs/4 GByte RAM)
17,65 / 17,45 / 17,43 Sekunden = 17,51 Sekunden
Also praktisch kein "Leistungsverlust".
Zusätzliche Test mit dem "Sieb des Eratosthenes", ein String-Replacement (wichtig für REST/JSON) und weiterer Arithmetik haben absolut vergleichbare Zahlen geliefert :-)
Good job, Microsoft!
NB: Der PAServer (auf Ubuntu) hatte keinen messbaren Einfluss auf der Ergebnis


Comments
-
Please login first in order for you to submit comments