Intel CPU, ARM Emulation und die Performance

Status
Für weitere Antworten geschlossen.
P

perpe

Gast
Ich wollte mit dem Text eigentlich warte bis ich das MemoPad FHD 10 selber in den Händen habe, jedoch wird das noch bis Mitte des Monats dauern. Da ich den Eindruck habe, dass hier ein bisschen Aufklärung gut tut, gibt es den Text jetzt schon. Ich werde also nicht sonderlich sehr auf das MemoPad FHD 10 selber eingehen sondern viel mehr auf den CPU. Sollte ich später, wenn ich das Tablet habe, das eine oder andere ergänzen wollen werde ich es tun.

Wie ihr sicher bemerkt habt können bei Benchmark Ergbnissen bei Intel Geräten starke Abweichungen mit unterscheidlichen Benchmark Apps auftreten. Nun sind Benchmarks natürlich immer mit vorsicht zu genießen (ich selber mag sie nicht). Aber auch im Gebrauch sind und werden euch starke Leistungsschwankungen auffallen, die eine App wird super gut laufen, eine andere, auf dem ersten Blick vielleicht auch einfachere, hingegen wird alles andere als geschmeidig sein. Die meisten Probleme werdet ihr mit Spielen haben.

Woran liegt das?
Wie ihr sicher alle wisst läuft Android hauptsächlich auf ARM Geräten. Intel CPU basierte Android Geräte sind nicht weit verbreitet, daher sind viele Android Apps nicht auf den Intel CPU angepasst.

Warum müssen Apps angepasst werden?
Es gibt im Grunde drei unterschiedliche Arten von Android Apps, jene die aus der Android API bestehen und mittels der SDK erstellt werden, WebApps, die hauptsächlich ein Browserfenster und HTML Inhalte bereitstellen und Mischapps, die aus der Android API und nativem Code bestehen. Problematisch ist nur die letzte Sorte, da diese C/C++ Code beinhalten. Dieser Code muss vom Entwickler immer für die CPU Architektur kompiliert und in der APK der App verfügbar gemacht werden. Viele Apps im Play Store, die nativen Code nutze, haben schon die nativen Elemente auch für x86 (also für Intel CPUs) mit dabei, aber eben bei weitem nicht alle, die meisten höchstwahrscheinlich nicht. Wenn ein App mit nativen Code nicht für die Architektur des Geräts kompiliert wurde dann läuft sie im Normalfall auch nicht.

Warum laufen die Apps totzdem?
Intel ist natürlich dieser Problematik bewusst und hat eine eigene ARM Emulation für Android erstellt. Sie ist Bestandteil des Systems und nicht Open Source. Durch diese Emulation ist es möglich auch für ARM kompilierte Apps auf Intel Architektur laufen zu lassen, jedoch eben mit erheblichen Leistungseinbußen. Und genau hier liegt der Grund, warum manche Apps auf Intel so schlecht und lahm laufen. Auch ist diese Emulation alles andere als Perfekt, ihr werdet also auch immer wieder mal Apps finden, die gar nicht funktionieren. Zusätzlich können bei Spielen weiter Probleme auftreten, wenn sie besonders hardwarenah sind.

Wie funktioniert die Emulation?
Die ARM Emulation läuft hauptsächlich über die libhoudini.so. Ihr findet sie im /system/lib Verzeichnis. Damit das ganze funktioniert ist die DalvikVM bei Intel Geräten leicht verändert worden. Vereinfacht ausgedrückt werden bei jeder ARM App die Befehle erst an libhoudini gesendet, von ihr für Intel übersetzt und dann erst ausgeführt.

Welche weiteren folgen hat das?
Wie oben geschrieben ist die ARM Emulation nicht Open Source. Vielleicht ahnt ihr es nun schon, vielleicht habt ihr euch bei anderen Intel Geräten schon umgesehen und es dort bemerkt: Chancen für CustomROMs, vorallem AOSP basierte, sind verschwindend gering. Falls es mal eine AOSP ROM geben sollte, kann es gut sein dass sie ohne diese ARM Emulation sein wird, was bedeuten würde das ziemlich viele Apps nicht laufen würden.

Warum hat sich Intel für Closed Source entschieden?
Intel hat sich ganz bewusst für Closed Source entschieden, da eine Emulation nie die volle Leistung des CPUs wiedergeben kann. Es ist also nur eine Brückentechnologie bis die App Entwickler in der Breitenmasse auch für Intel ihre Apps kompilieren. Intel hat also kein interesse an der Veröffentlichung des Codes für die Eumlation, denn solange emuliert wird werden die Apps unter Intel auch langsamer als mit gleichwertigen ARM CPUs laufen.

Was kann man selber machen?
Die Entwickler anschreiben, das ist das beste was ihr als User machen könnt. Wenn ihr Apps habt, die langsam laufen, meldet es den Entwicklern der App mit der Bitte auf Bereitstellung der nativen Bibliotheken auch für Intel/x86 CPUs.
Es sind, wie oben beschrieben, nur die Apps mit nativen Code betroffen. Die große Masse der Apps gehören nicht dazu, viele andere sind auch schon angepasst. Jedoch sind die Apps, die nativen Code haben, auch meist die begehrten, wie Musik und Viedeo Player, Spiele...

Abschiessend muss jeder für sich selber entscheiden, ob er mit diesen Fakten leben kann und will. Ob dadurch das MeMo Pad und auch jedes andere Intel Tablet für ihn noch in Frage kommen oder nicht. Diese Tatsache macht ein Intel Tablet nicht schlechter als andere, nur anders, aber soweit sollte man sich auch vorher informiert haben. Da es einigen in der gesamten Tragweite doch nicht so ganz klar ist, dieser Text.

Wenn ihr also der Ansicht seid, euer Gerät/eure Apps läuft trotz genug Power langsamer als es sollte, dann liegt es zu einem sehr großen Teil an der Emulation.
Wenn ihr die Preformance Probleme anderer nicht verstehen könnt, dann wahrscheinlich daran, dass ihr nicht die selben Apps nutzt und ihr wohl mehr die Apps habt, die keine Emulation brauchen.

Hier geht es nun zum Diskussionsthread (ausgelagert aus dem Erfahrungsberichte Thread)
 
Zuletzt bearbeitet von einem Moderator:
  • Danke
Reaktionen: LinuxUser, barani, nnm und 10 andere
Status
Für weitere Antworten geschlossen.

Ähnliche Themen

N
Antworten
44
Aufrufe
13.045
7Zoll
7
S
  • SvenF86
Antworten
2
Aufrufe
1.209
bluntonium
B
M
  • Majamulli
Antworten
1
Aufrufe
1.690
perpe
P
Zurück
Oben Unten