2013-04-10 10 views
7

Ich mache ein Android-Spiel und der Leistungsunterschied zwischen Single-Core-Handys wie Galaxy S und Dual-Core-Galaxy S2 ist vergleichbar mit Tag und Nacht. Anstatt verschiedene Versionen für einzelne Kerne und Dual/Quad-Cores zu entwickeln, habe ich daher überlegt, die Prozessoranzahl des Geräts zu verwenden, um bestimmte Grafikfunktionen ein- und auszuschalten.Prozessor Zuverlässigkeit

Aber wie zuverlässig ist die Anzahl der Prozessoren? Haben einige Single-Core-Telefone Threading wie Intel Hyperthreading, die einen Kern als zwei zeigt? Oder sind manche Dual-Core-Telefone wesentlich langsamer als das Galaxy S2?

+3

Warum nicht einfach den Benutzern eine Option zum Deaktivieren von ausgefallenen Effekten geben, wenn sie das Gefühl haben, das Spiel läuft zu langsam? –

+1

1. Soweit ich weiß, gibt es keine Chips mit Intels HT-ähnlicher Technologie. 2. Ja, einige sogar Dual-Core-Chips können wirklich langsam sein. –

+0

Ich denke, einige Telefone nutzen auch Core-Parking, im Grunde deaktivieren einen der Kerne, wenn die Batterie schwach ist oder wenn einige andere Kriterien erfüllt ist. Ich habe ein ähnliches Problem auf Laptops erlebt, wo Core-Parking Core-Temperatur-Utilities über den fehlenden Kern ausflippen lässt. –

Antwort

0

Grafikeffekte sollten von der GPU gezeichnet werden, nicht von der CPU.

+0

Sie können nicht in der Regel alle Berechnungen in der GPU tun - es wird auch CPU-Auslastung geben, je mehr Sie versuchen, zu tun. – Rup

+1

Einige Effekte sind mehr Stress für die CPU als für die GPU. Wenn Sie zum Beispiel Schatten auf einem mobilen Gerät erstellen, sind die Raycasts zur Bestimmung des Schattenplatzes und der Größe teurer als das Zeichnen des Blobs selbst. – Esa

1

Während ich Ihre guten Absichten hinter der Idee erkennen, nach Kernen zu suchen und Einstellungen automatisch anzupassen, so dass der Benutzer die Einstellungen nicht selbst anpassen muss &, um Leistung zu verbessern, wird es in der Praxis nicht funktionieren.

Dies liegt daran, dass es zu viele Geräte und Ecken zu bedecken gibt. Beispiel:

  • Einige Multicore-Geräte verfügen über einen zentralen Parkplatz und werden möglicherweise nicht von der von Ihnen verwendeten Kernerkennung erkannt.
  • Einige Single-Core-Geräte können Hyperthreading enthalten oder auch nicht, werden jedoch nicht als mehrere Cores angezeigt.
  • Wenn sich der Benutzer im Energiesparmodus des Telefons befindet, können Sie zwar mehrere Kerne erkennen, aber nicht erkennen, dass diese mit begrenzter Kapazität ausgeführt werden.

Ich bin sicher, dass viele andere Beispiele existieren. Der Punkt ist, es wäre wahrscheinlich ein Albtraum für Sie, die meisten/alle dieser Fälle zu erfassen, um die Einstellungen Ihrer App automatisch anzupassen, besonders in Anbetracht einer relativ einfacheren Lösung: fragen Sie den Benutzer, welche Einstellungen er beim Start der App vornehmen und machen möchte Es ist einfach, diese Einstellungen jederzeit anzupassen.

Manchmal ist es besser, den Schoß des Benutzers zu belasten, besonders wenn es wenig bis gar keine Anstrengung für sie erfordert, und proportional mehr Aufwand für den Entwickler zu tun. Viel Glück!

Verwandte Themen