2012-11-12 6 views
16

Also ich weiß, dass Armv7s für das iPhone 5 optimiert ist, und das Hinzufügen von es wird mein Code auf diesem Gerät ein wenig schneller laufen lassen.Lohnt es sich, die armv7s Scheibe auf iOS6 hinzuzufügen?

Weiß jemand, was der Unterschied ist? Gibt es irgendwelche Benchmarks?

Der Kompromiss ist die App-Größe. Meine geschätzte App-Größe reicht von 3,3 MB bis 5 MB mit dem Zusatz von armv7s, was saftige 50% mehr zum Download ist.

Ich denke, wenn die Geschwindigkeitssteigerung nicht zwingend ist, ist es möglicherweise nicht die Downloadkosten wert, aber ich kann nicht viel Diskussion darüber finden, was die Vorteile sein würden.

+0

http://wanderingcoder.net/2010/07/19/ought-arm/ – Peres

+0

@JackyBoy guter Überblick über armv6 und armv7, und einige gute Gründe, armv7 auf dieser verlinkten Seite zu unterstützen http://wanderingcoder.net/ 2011/09/25/compiling-armv7 /. Aber keine Diskussion von 'armv7' vs' armv7s'. –

+1

Ich mag, dass Sie darüber nachgedacht haben. – mackross

Antwort

8

Es lohnt sich, armv7s-Unterstützung hinzuzufügen, wenn Sie die VFPv4-Unterstützung (die mit dem A6-SoC neu ist) für schnellere Fließkommaberechnungen nutzen möchten. Es gibt mehr Details, wenn Sie die untenstehenden Links betrachten, die immer noch die besten Quellen sind, die ich gefunden habe, als ich die Recherche ursprünglich gemacht habe. Ich kenne keine Benchmarks, aber da die Vorteile von App zu App variieren können (je nachdem, wie fest Ihre App für Gleitkomma-Berechnungen ist), könnte es gut sein, sie trotzdem selbst zu betreiben.

anandtech article

apple dev forums link

related SO article

+0

Danke für Ihre Infos. Eine Folgefrage: Ändert das Vorhandensein oder Nicht-Vorhandensein eines Armvs-Slice, wie der Bibliothekscode ausgeführt wird (z. B. Tabellenansichtsscrolling), da sich dieser Code im Betriebssystem befindet? Würden wir immer noch die Vorteile von VFPv4 für Apples UIKit-Layoutberechnungen erhalten, auch wenn wir selbst keine Armvs enthalten? –

+0

Gern geschehen, Sie müssten dieses Slice kompilieren, um die Anweisungen für VFPv4 einzubinden. – foggzilla

1

ist mein Rat es messen. Die Verbesserungen von ARMv7s sind so spezifisch (Hardware-Integer Division, und VFPv4 ist ziemlich fusioniert Multiply-Add), dass Verbesserungen an Benchmarks für Ihren Code gelten können oder auch nicht, also glaube ich nicht, dass es viel Ersatz für das Timing gibt App auf einem iPhone 5 mit und ohne ARMv7s Scheibe vorhanden.

1

Die einfachste Sache, die Sie tun können, um den Leistungsunterschied zu verstehen, ist die Installation Ihrer Anwendung in iPhone 5 mit und ohne Verwendung von 'Armv7s' Unterstützung. Aus meiner Erfahrung kann ich Leistungsunterschied in jedem Modell des iPhone sehen. Mein Rat ist, Armv7s Unterstützung für Ihre Anwendung hinzuzufügen und unter "extremen" Fällen zu testen, und wenn Sie irgendwelche Leistungsunterschiede sehen können, vergessen Sie einfach die ipa-Größe und andere Dinge.

3

Welche Art von Anwendung bauen Sie? armv7s fügt vfp4 und Integer Division hinzu. Also, wenn Ihre Anwendung Floating Point Heavy ist (fusionierte Multiply-akkumulieren ~ Signalverarbeitung) oder viele Variable durch variable Division (Variable durch konstante Division ist zur Kompilierzeit hoch optimierbar) sollten Sie gut ohne armv7s Unterstützung gut sein. Falls Ihre App auf der neuesten Hardware läuft, werden alle von Framework bereitgestellten Layouts diese Verbesserungen trotzdem verwenden.

+1

Unser App-Code macht nicht viele mathematische Berechnungen selbst, obwohl es UIKit ist und Scrollen Ansichten und Animationen überall. Wollen Sie damit sagen, dass wir die Vorteile von VFP4 in diesem UIKit-Code erhalten, sogar ohne die Armv7-Scheibe für unsere App? –