Ich möchte testen, um zu sehen, welche Design eine bessere Leistung gibt.
Warum spielt es eine Rolle? Dies ist keine Flip Frage! Sie sollen ein Erfolgsziel im Auge haben, und wenn Sie es gerecht zu werden, ist der Code schnell genug.
Wie wissen Sie, wie schnell ist „schnell genug“? Es stellt sich heraus, die Benutzer-Schnittstelle Menschen auf die Wirkung der Reaktionszeit auf den Benutzererfahrung gute Daten haben:
0,1 Sekunden beträgt etwa die Grenze dafür, dass der Benutzer das Gefühl, dass das System augenblicklich reagiert, was bedeutet, dass keine spezielle Rückkopplung ist notwendig, außer um das Ergebnis anzuzeigen. (Die meisten Menschen haben eine Reaktionszeit von etwa 0,1 Sekunden; Düsenjäger Piloten um 0.08s get down, dh 80 ms.)
1 Sekunde über die Grenze für den Fluss des Benutzers gedacht ununterbrochen zu bleiben, auch wenn der Benutzer die Verzögerung bemerken. Normalerweise ist kein spezielles Feedback bei Verspätungen von mehr als 0,1 erforderlich, jedoch weniger als 1,0 Sekunden, aber der Benutzer hat das Gefühl, direkt „Fahren“ Ihre Anwendung verlieren.
10 Sekunden geht es um die Grenze für das Halten die Aufmerksamkeit des Benutzers auf der App konzentriert. Bei längeren Verzögerungen, werden die Nutzer wollen andere Aufgaben während des Wartens auf den Computer zu beenden, so sollten sie Feedback gegeben werden, das anzeigt, wenn der Computer getan werden erwartet. Feedback während der Verzögerung ist besonders wichtig, wenn die Reaktionszeit ist schwer vorherzusagen, oder ist sehr unterschiedlich.
Die quantitativen Ergebnisse oben gelten nur für Interaktion, natürlich, die in Sekunden Wartezeit gemessen wird. Aber selbst wenn Ihr Ziel ist Netzwerkpakete gesendet, Seiten RAM zugewiesen, die Blöcke von der Festplatte gelesen / geschrieben, oder einfach nur Watt Leistung verbraucht wird , die Botschaft , die ich zu kommunizieren versuchen ist , dass Sie ein Performance - Ziel haben sollten , sollte das Ziel sein quantifiziert und das Ziel sollte auf die Bedürfnisse der Benutzer angeschlossen werden . Wenn Sie nicht über ein quantifizierbares Ziel haben, sind Sie nicht Engineering zu tun; Sie nur im Dunkeln pfeifen. Es sei denn , Ihr Ziel sich selbst zu erziehen (oder Leerlauf Neugier zu befriedigen), die Frage , die Sie stellen sollten , ist „mein Code ist gut genug , dass ich weitermachen kann?“
Wenn Sie nicht Ihre Leistung Ziel zu treffen, oder wenn Sie sich selbst zu erziehen versuchen, ich denke , die beste Kombination aus lesbar und detaillierten Informationen kommt den von der Verwendung valgrind Profiler ( --tool=callgrind --dump-instr=yes
) zusammen mit dem kcachegrind
Visualizer.