Warum ist lua auf dem Hostsystem langsamer als in linux vm?

9

Vergleiche die Ausführungszeit von diesem Lua Script auf einem Macbook Air (Mac OS 10.9.4, i5-4250U (1.3GHz), 8GB RAM) zu einer VM (virtualbox), auf der Arch Linux läuft.

Kompilieren von Lua 5.2.3 in einer Arch Linux virtualbox

Zuerst habe ich lua selbst mit clang kompiliert, um es mit der Mac OS X-Clam-Binärdatei zu vergleichen.

mit tcc, gcc und clang

%Vor% Sprachversion in VM %Vor%

Vergleiche die Dateigröße

%Vor%

VM-Benchmarking

Clam binär ~ 3,1 sec

%Vor%

gcc binary ~ 3.09 Sekunden

%Vor%

tcc binary ~ 7.0 sec - keine Überraschung hier:)

%Vor%

Kompilieren unter Mac OS X

Nun kompiliere lua mit dem gleichen clang Befehl / Optionen wie in der VM.

%Vor% Klangversion Mac OS X

Ich habe zwei Versionen ausprobiert. 3.4.2 und die, die von xcode zur Verfügung gestellt wird. Die Version 3.4.2 ist etwas langsamer.

%Vor%

Dateigröße

%Vor%

HOST-Benchmarking

clang binary ~ 4,3 sec

%Vor%

Warum?

Ich hätte erwartet, dass das Host-System etwas schneller ist als die Virtualisierung (oder ungefähr die gleiche Geschwindigkeit). Aber nicht, dass das Hostsystem langsamer reproduzierbar ist.

Also, irgendwelche Ideen oder Erklärungen?

Update 2014.10.30

Inzwischen habe ich Arch Linux nativ auf meinem MBA installiert. Die Benchmarks sind so schnell wie in der Arch Linux VM.

    
Markus 20.08.2014, 17:22
quelle

3 Antworten

1

Können Sie versuchen, "Perf stat" anstelle von "time" auszuführen? Es bietet Ihnen viel mehr Details und die Zeitmessung ist korrekter und vermeidet Timing-Unterschiede innerhalb der VM.

Hier ist ein Beispiel:

%Vor%

Leistungsindikatoren für 'ls':

%Vor%     
Breno Leitão 16.01.2015 17:48
quelle
0

Meine Vermutung ist, dass die HFS + Journalfunktion Latenz hinzufügt. Das wäre leicht genug zu testen: Wenn TimeMachine auf dem MacBook Air läuft, könnten Sie versuchen, es zu deaktivieren und Journaling auf dem Dateisystem deaktivieren (natürlich sollten Sie zuerst sichern). Als root:

%Vor%

Ich würde sehen, ob das die Ursache des Problems ist. Dann würde ich das Journaling sofort wieder aktivieren.

%Vor%

OS X 10.9.2 hatte einen Journaling-Bug, der das Dateisystem aufhängt ... diese Seite untersucht diesen Fehler weiter, und obwohl der Fehler (# 15821723) nicht als behoben gemeldet wurde, stürzt Journaling den Festplattencontroller nicht mehr ab.

    
brirus 19.11.2014 21:03
quelle
0

um die Geschwindigkeit von lua zu testen, anstatt eine Datei zu lesen, einige Beispieldaten in das Testskript einzubinden und die Zeilen bei Bedarf immer wieder zu durchlaufen. Wie bereits erwähnt, werden die Dateisystemeffekte die Compiler-Unterschiede überwiegen.

    
Andras 04.12.2014 02:13
quelle

Tags und Links