Computerleistung – Wikipedia

Im Computer, Computerleistung ist die Menge an nützlicher Arbeit, die von einem Computersystem geleistet wird. Außerhalb bestimmter Kontexte wird die Computerleistung in Bezug auf Genauigkeit, Effizienz und Geschwindigkeit der Ausführung von Computerprogrammanweisungen geschätzt. Wenn es um eine hohe Computerleistung geht, können einer oder mehrere der folgenden Faktoren eine Rolle spielen:

Technische und nichttechnische Definitionen[edit]

Die Leistung eines Computersystems kann unter Verwendung einer oder mehrerer der oben aufgeführten Metriken messbar und technisch bewertet werden. Auf diese Weise kann die Leistung sein

  • Im Vergleich zu anderen Systemen oder demselben System vor / nach Änderungen
  • In absoluten Zahlen, zB zur Erfüllung einer vertraglichen Verpflichtung

Während sich die obige Definition auf einen wissenschaftlichen, technischen Ansatz bezieht, wäre die folgende Definition von Arnold Allen für ein nicht-technisches Publikum nützlich:

Das Wort Performance in Computerleistung bedeutet dasselbe, was Leistung in anderen Kontexten bedeutet, dh „Wie gut macht der Computer die Arbeit, die er tun soll?“[1]

Als ein Aspekt der Softwarequalität[edit]

Die Leistung von Computersoftware, insbesondere die Reaktionszeit von Softwareanwendungen, ist ein Aspekt der Softwarequalität, der für die Interaktion zwischen Mensch und Computer wichtig ist.

Performance Engineering[edit]

Performance Engineering innerhalb des Systems Engineering umfasst die Rollen, Fähigkeiten, Aktivitäten, Praktiken, Tools und Ergebnisse, die in jeder Phase des Systementwicklungslebenszyklus angewendet werden, um sicherzustellen, dass eine Lösung entworfen, implementiert und betrieblich unterstützt wird, um die Leistungsanforderungen zu erfüllen für die Lösung definiert.

Performance Engineering befasst sich kontinuierlich mit Kompromissen zwischen Leistungstypen. Gelegentlich kann ein CPU-Designer einen Weg finden, eine CPU mit einer besseren Gesamtleistung herzustellen, indem er einen der unten dargestellten Leistungsaspekte verbessert, ohne die Leistung der CPU in anderen Bereichen zu beeinträchtigen. Zum Beispiel den Aufbau der CPU aus besseren, schnelleren Transistoren.

Manchmal führt es jedoch zu einer CPU mit schlechterer Gesamtleistung, wenn eine Leistungsart auf ein extremes Niveau gebracht wird, da andere wichtige Aspekte geopfert wurden, um eine beeindruckend aussehende Zahl zu erhalten, beispielsweise die Taktrate des Chips (siehe den Megahertz-Mythos).

Application Performance Engineering[edit]

Application Performance Engineering (APE) ist eine spezielle Methode innerhalb des Performance Engineering, die entwickelt wurde, um die Herausforderungen zu bewältigen, die mit der Anwendungsleistung in zunehmend verteilten mobilen, Cloud- und terrestrischen IT-Umgebungen verbunden sind. Es enthält die Rollen, Fähigkeiten, Aktivitäten, Praktiken, Tools und Ergebnisse, die in jeder Phase des Anwendungslebenszyklus angewendet werden, um sicherzustellen, dass eine Anwendung entworfen, implementiert und betrieblich unterstützt wird, um nicht funktionale Leistungsanforderungen zu erfüllen.

Leistungsaspekte[edit]

Zu den Leistungsmetriken des Computers (zu messende Dinge) gehören Verfügbarkeit, Antwortzeit, Kanalkapazität, Latenz, Fertigstellungszeit, Servicezeit, Bandbreite, Durchsatz, relative Effizienz, Skalierbarkeit, Leistung pro Watt, Komprimierungsrate, Befehlspfadlänge und Beschleunigung. CPU-Benchmarks sind verfügbar.[2]

Verfügbarkeit[edit]

Die Verfügbarkeit eines Systems wird in der Regel als Faktor für seine Zuverlässigkeit gemessen – mit zunehmender Zuverlässigkeit steigt auch die Verfügbarkeit (dh weniger Ausfallzeiten). Die Verfügbarkeit eines Systems kann auch durch die Strategie erhöht werden, sich auf die Verbesserung der Testbarkeit und Wartbarkeit und nicht auf die Zuverlässigkeit zu konzentrieren. Die Verbesserung der Wartbarkeit ist im Allgemeinen einfacher als die Zuverlässigkeit. Wartbarkeitsschätzungen (Reparaturraten) sind im Allgemeinen auch genauer. Da die Unsicherheiten bei den Zuverlässigkeitsschätzungen in den meisten Fällen sehr groß sind, wird das Problem der Verfügbarkeit (Vorhersageunsicherheit) wahrscheinlich dominiert, selbst wenn die Wartbarkeit sehr hoch ist.

Reaktionszeit[edit]

Die Antwortzeit ist die Gesamtzeit, die zum Beantworten einer Serviceanforderung benötigt wird. Beim Rechnen kann dieser Dienst eine beliebige Arbeitseinheit sein, von einer einfachen Festplatten-E / A bis zum Laden einer komplexen Webseite. Die Antwortzeit ist die Summe von drei Zahlen:[3]

  • Servicezeit – Wie lange es dauert, die angeforderte Arbeit zu erledigen.
  • Wartezeit – Wie lange muss die Anforderung auf Anforderungen warten, die sich in der Warteschlange befinden, bevor sie ausgeführt werden kann?
  • Übertragungszeit – Wie lange es dauert, die Anforderung auf den Computer zu verschieben, der die Arbeit erledigt, und die Antwort zurück an den Anforderer.

Verarbeitungsgeschwindigkeit[edit]

Die meisten Verbraucher wählen eine Computerarchitektur (normalerweise Intel IA32-Architektur), um eine große Basis bereits vorhandener, vorkompilierter Software ausführen zu können. Einige von ihnen sind in Bezug auf Computer-Benchmarks relativ uninformiert und wählen eine bestimmte CPU basierend auf der Betriebsfrequenz aus (siehe Megahertz-Mythos).

Einige Systemdesigner, die parallele Computer bauen, wählen CPUs basierend auf der Geschwindigkeit pro Dollar aus.

Kanalkapazität[edit]

Die Kanalkapazität ist die engste Obergrenze für die Informationsrate, die zuverlässig über einen Kommunikationskanal übertragen werden kann. Nach dem Noisy-Channel-Codierungssatz ist die Kanalkapazität eines bestimmten Kanals die Grenzinformationsrate (in Informationseinheiten pro Zeiteinheit), die mit beliebig kleiner Fehlerwahrscheinlichkeit erreicht werden kann.[4][5]

Die Informationstheorie, die von Claude E. Shannon im Zweiten Weltkrieg entwickelt wurde, definiert den Begriff der Kanalkapazität und liefert ein mathematisches Modell, mit dem man sie berechnen kann. Das Hauptergebnis besagt, dass die Kapazität des Kanals, wie oben definiert, durch das Maximum der gegenseitigen Information zwischen dem Eingang und dem Ausgang des Kanals gegeben ist, wobei die Maximierung in Bezug auf die Eingangsverteilung erfolgt.[6]

Latenz[edit]

Die Latenz ist eine Zeitverzögerung zwischen der Ursache und der Auswirkung einer beobachteten physischen Änderung des Systems. Die Latenz ist ein Ergebnis der begrenzten Geschwindigkeit, mit der jede physikalische Interaktion stattfinden kann. Diese Geschwindigkeit ist immer niedriger oder gleich der Lichtgeschwindigkeit. Daher wird jedes physikalische System, dessen räumliche Dimensionen von Null abweichen, eine Art Latenz erfahren.

Die genaue Definition der Latenz hängt vom beobachteten System und der Art der Stimulation ab. Bei der Kommunikation wird die untere Latenzgrenze durch das für die Kommunikation verwendete Medium bestimmt. In zuverlässigen Zwei-Wege-Kommunikationssystemen begrenzt die Latenz die maximale Rate, mit der Informationen übertragen werden können, da die Menge an Informationen, die zu einem bestimmten Zeitpunkt „im Flug“ sind, häufig begrenzt ist. Im Bereich der Mensch-Maschine-Interaktion hat die wahrnehmbare Latenz (Verzögerung zwischen den Befehlen des Benutzers und der Bereitstellung der Ergebnisse durch den Computer) einen starken Einfluss auf die Zufriedenheit und Benutzerfreundlichkeit der Benutzer.

Computer führen Befehlssätze aus, die als Prozess bezeichnet werden. In Betriebssystemen kann die Ausführung des Prozesses verschoben werden, wenn auch andere Prozesse ausgeführt werden. Darüber hinaus kann das Betriebssystem festlegen, wann die vom Prozess befohlene Aktion ausgeführt werden soll. Angenommen, ein Prozess befiehlt, dass der Spannungsausgang einer Computerkarte mit einer Rate von 1000 Hz auf High-Low-High-Low usw. eingestellt wird. Das Betriebssystem kann wählen, die Planung jedes Übergangs (hoch-niedrig oder niedrig-hoch) basierend auf einer internen Uhr anzupassen. Die Latenz ist die Verzögerung zwischen dem Prozessbefehl, der den Übergang befiehlt, und der Hardware, die die Spannung tatsächlich von hoch nach niedrig oder von niedrig nach hoch überführt.

Systementwickler, die Echtzeit-Computersysteme erstellen, möchten eine Worst-Case-Reaktion gewährleisten. Dies ist einfacher, wenn die CPU eine geringe Interrupt-Latenz aufweist und eine deterministische Reaktion aufweist.

Bandbreite[edit]

In Computernetzwerken ist die Bandbreite ein Maß für die Bitrate verfügbarer oder verbrauchter Datenkommunikationsressourcen, ausgedrückt in Bit pro Sekunde oder einem Vielfachen davon (Bit / s, kbit / s, Mbit / s, Gbit / s usw.).

Die Bandbreite definiert manchmal die Nettobitrate (auch bekannt als Spitzenbitrate, Informationsrate oder nützliche Bitrate der physischen Schicht), die Kanalkapazität oder den maximalen Durchsatz eines logischen oder physischen Kommunikationspfads in einem digitalen Kommunikationssystem. Beispielsweise messen Bandbreitentests den maximalen Durchsatz eines Computernetzwerks. Der Grund für diese Verwendung ist, dass gemäß dem Hartleyschen Gesetz die maximale Datenrate einer physischen Kommunikationsverbindung proportional zu ihrer Bandbreite in Hertz ist, die manchmal als Frequenzbandbreite, Spektralbandbreite, HF-Bandbreite, Signalbandbreite oder analoge Bandbreite bezeichnet wird.

Durchsatz[edit]

Im Allgemeinen ist der Durchsatz die Produktionsrate oder die Rate, mit der etwas verarbeitet werden kann.

In Kommunikationsnetzen ist der Durchsatz im Wesentlichen gleichbedeutend mit dem Verbrauch digitaler Bandbreite. In drahtlosen Netzwerken oder zellularen Kommunikationsnetzen ist die spektrale Systemeffizienz in Bit / s / Hz / Flächeneinheit, Bit / s / Hz / Ort oder Bit / s / Hz / Zelle der maximale Systemdurchsatz (Gesamtdurchsatz) geteilt durch die analoge Bandbreite und ein gewisses Maß für den Systemabdeckungsbereich.

In integrierten Schaltkreisen hat häufig ein Block in einem Datenflussdiagramm einen einzelnen Eingang und einen einzelnen Ausgang und arbeitet mit diskreten Informationspaketen. Beispiele für solche Blöcke sind FFT-Module oder binäre Multiplikatoren. Da die Durchsatzeinheiten der Kehrwert der Einheit für die Laufzeitverzögerung sind, dh „Sekunden pro Nachricht“ oder „Sekunden pro Ausgabe“, kann der Durchsatz verwendet werden, um ein Rechengerät, das eine dedizierte Funktion wie einen ASIC oder einen eingebetteten Prozessor ausführt, in Beziehung zu setzen ein Kommunikationskanal, der die Systemanalyse vereinfacht.

Relative Effizienz[edit]

Skalierbarkeit[edit]

Skalierbarkeit ist die Fähigkeit eines Systems, Netzwerks oder Prozesses, einen wachsenden Arbeitsaufwand auf fähige Weise zu bewältigen, oder seine Fähigkeit, erweitert zu werden, um diesem Wachstum Rechnung zu tragen

Energieverbrauch[edit]

Die vom Computer verbrauchte Strommenge. Dies ist besonders wichtig für Systeme mit begrenzten Stromquellen wie Solar, Batterien und menschlicher Energie.

Leistung pro Watt[edit]

Systementwickler, die parallele Computer wie Googles Hardware bauen, wählen CPUs basierend auf ihrer Geschwindigkeit pro Watt Leistung aus, da die Kosten für die Stromversorgung der CPU die Kosten für die CPU selbst überwiegen.[7]

Kompressionsrate[edit]

Die Komprimierung ist nützlich, da sie die Ressourcennutzung reduziert, z. B. Datenspeicherplatz oder Übertragungskapazität. Da komprimierte Daten zur Verwendung dekomprimiert werden müssen, verursacht diese zusätzliche Verarbeitung Rechenaufwand oder andere Kosten durch Dekomprimierung. Diese Situation ist weit davon entfernt, ein kostenloses Mittagessen zu sein. Die Datenkomprimierung unterliegt einem Kompromiss zwischen Raum und Zeit.

Größe und Gewicht[edit]

Dies ist ein wichtiges Leistungsmerkmal mobiler Systeme, von den Smartphones, die Sie in der Tasche haben, bis zu den tragbaren eingebetteten Systemen in einem Raumschiff.

Umweltbelastung[edit]

Die Auswirkungen eines Computers oder von Computern auf die Umwelt, während der Herstellung und des Recyclings sowie während des Gebrauchs. Messungen werden mit dem Ziel durchgeführt, Abfall zu reduzieren, gefährliche Materialien zu reduzieren und den ökologischen Fußabdruck eines Computers zu minimieren.

Transistoranzahl[edit]

Die Transistoranzahl ist die Anzahl der Transistoren auf einer integrierten Schaltung (IC). Die Transistoranzahl ist das häufigste Maß für die IC-Komplexität.

Benchmarks[edit]

Da es so viele Programme gibt, mit denen eine CPU auf alle Aspekte der Leistung getestet werden kann, wurden Benchmarks entwickelt.

Die bekanntesten Benchmarks sind die von der Standard Performance Evaluation Corporation entwickelten SPECint- und SPECfp-Benchmarks und der vom Embedded Microprocessor Benchmark Consortium EEMBC entwickelte Benchmark für Zertifizierungszeichen.

Testen der Softwareleistung[edit]

In der Softwareentwicklung werden Leistungstests im Allgemeinen durchgeführt, um festzustellen, wie sich ein System in Bezug auf Reaktionsfähigkeit und Stabilität unter einer bestimmten Arbeitslast verhält. Es kann auch dazu dienen, andere Qualitätsmerkmale des Systems wie Skalierbarkeit, Zuverlässigkeit und Ressourcennutzung zu untersuchen, zu messen, zu validieren oder zu verifizieren.

Leistungstests sind eine Teilmenge des Performance Engineering, einer aufstrebenden Informatikpraxis, die darauf abzielt, Leistung in die Implementierung, das Design und die Architektur eines Systems einzubauen.

Profilerstellung (Leistungsanalyse)[edit]

In der Softwareentwicklung ist die Profilerstellung („Programmprofilerstellung“, „Softwareprofilierung“) eine Form der dynamischen Programmanalyse, die beispielsweise die räumliche (Speicher-) oder zeitliche Komplexität eines Programms, die Verwendung bestimmter Anweisungen oder die Häufigkeit und Häufigkeit misst Dauer der Funktionsaufrufe. Die häufigste Verwendung von Profilinformationen ist die Unterstützung der Programmoptimierung.

Die Profilerstellung erfolgt durch Instrumentieren des Programmquellcodes oder seiner ausführbaren Binärform mit einem Tool namens a Profiler (oder Code-Profiler). Profiler können eine Reihe verschiedener Techniken verwenden, z. B. ereignisbasierte, statistische, instrumentierte und Simulationsmethoden.

Leistungsoptimierung[edit]

Leistungsoptimierung ist die Verbesserung der Systemleistung. Dies ist normalerweise eine Computeranwendung, aber die gleichen Methoden können auf Wirtschaftsmärkte, Bürokratien oder andere komplexe Systeme angewendet werden. Die Motivation für eine solche Aktivität wird als Leistungsproblem bezeichnet, das real oder vorweggenommen sein kann. Die meisten Systeme reagieren auf eine erhöhte Last mit einem gewissen Grad an abnehmender Leistung. Die Fähigkeit eines Systems, eine höhere Last zu akzeptieren, wird als Skalierbarkeit bezeichnet, und das Ändern eines Systems zur Bewältigung einer höheren Last ist gleichbedeutend mit einer Leistungsoptimierung.

Die systematische Abstimmung folgt diesen Schritten:

  1. Bewerten Sie das Problem und legen Sie numerische Werte fest, die ein akzeptables Verhalten kategorisieren.
  2. Messen Sie die Leistung des Systems vor der Änderung.
  3. Identifizieren Sie den Teil des Systems, der für die Verbesserung der Leistung entscheidend ist. Dies wird als Engpass bezeichnet.
  4. Ändern Sie diesen Teil des Systems, um den Engpass zu beseitigen.
  5. Messen Sie die Leistung des Systems nach der Änderung.
  6. Wenn die Änderung die Leistung verbessert, übernehmen Sie sie. Wenn die Änderung die Leistung verschlechtert, stellen Sie sie wieder so ein, wie sie war.

Wahrgenommene Leistung[edit]

Die wahrgenommene Leistung in der Computertechnik bezieht sich darauf, wie schnell eine Softwarefunktion ihre Aufgabe zu erfüllen scheint. Das Konzept gilt hauptsächlich für Benutzerakzeptanzaspekte.

Die Zeit, die eine Anwendung zum Starten oder Herunterladen einer Datei benötigt, wird nicht durch das Anzeigen eines Startbildschirms (siehe Begrüßungsbildschirm) oder eines Dialogfelds zum Dateifortschritt verkürzt. Es erfüllt jedoch einige menschliche Bedürfnisse: Es erscheint dem Benutzer schneller und bietet einen visuellen Hinweis, um ihn wissen zu lassen, dass das System seine Anfrage bearbeitet.

In den meisten Fällen erhöht eine Erhöhung der tatsächlichen Leistung die wahrgenommene Leistung. Wenn jedoch die tatsächliche Leistung aufgrund physikalischer Einschränkungen nicht erhöht werden kann, können Techniken verwendet werden, um die wahrgenommene Leistung zu erhöhen.

Leistungsgleichung[edit]

Die Gesamtzeit (t) erforderlich, um ein bestimmtes Benchmark-Programm auszuführen ist

, oder gleichwertig

[8]

wo

Selbst auf einem Computer kann ein anderer Compiler oder derselbe Compiler mit unterschiedlichen Compiler-Optimierungsschaltern N und CPI ändern. Der Benchmark wird schneller ausgeführt, wenn der neue Compiler N oder C verbessern kann, ohne den anderen zu verschlechtern, aber häufig gibt es einen Kompromiss zwischen ihnen – ist es beispielsweise besser, einige komplizierte Anweisungen zu verwenden, deren Ausführung lange dauert, oder Anweisungen zu verwenden, die sehr schnell ausgeführt werden, obwohl mehr von ihnen erforderlich sind, um den Benchmark auszuführen?

Ein CPU-Designer muss häufig einen bestimmten Befehlssatz implementieren und kann daher N nicht ändern. Manchmal konzentriert sich ein Designer auf die Verbesserung der Leistung, indem er f signifikant verbessert (mit Techniken wie tieferen Pipelines und schnelleren Caches), ohne (hoffentlich) zu opfern zu viel C – was zu einem Speed-Demon-CPU-Design führt. Manchmal konzentriert sich ein Designer auf die Verbesserung der Leistung, indem er den CPI erheblich verbessert (mit Techniken wie Ausführung außerhalb der Reihenfolge, superskalaren CPUs, größeren Caches, Caches mit verbesserten Trefferquoten, verbesserter Verzweigungsvorhersage, spekulativer Ausführung usw.), während ( hoffentlich) nicht zu viel Taktfrequenz zu opfern – was zu einem Gehirn-CPU-Design führt.[9]

Für einen gegebenen Befehlssatz (und daher ein festes N) und einen gegebenen Halbleiterprozess erfordert die maximale Single-Thread-Leistung (1 / t) ein Gleichgewicht zwischen Gehirn- und Speedracer-Techniken.[8]

Interne und externe Faktoren, die die Computerleistung beeinflussen[edit]

Viele Faktoren können die Computerleistung beeinflussen, darunter:[10]

  • Hintergrundprozesse
  • Vordergrundprozesse
  • Malware
  • Körperliches Alter
  • Hardware

Viele andere Faktoren spielen möglicherweise ebenfalls eine Rolle. Alle diese Faktoren verringern die Leistung vom Basiswert und vor allem für den Benutzer die wahrgenommene Leistung.

Siehe auch[edit]

Verweise[edit]

  1. ^ Computerleistungsanalyse mit Mathematica von Arnold O. Allen, Academic Press, 1994. $ 1.1 Einführung, S. 1.
  2. ^ Ähnlichkeit des Messprogramms: Experimente mit SPEC CPU Benchmark Suites, CiteSeerX 10.1.1.123.501
  3. ^ Wescott, Bob (2013). Das Every Computer Performance Book, Kapitel 3: Nützliche Gesetze. CreateSpace. ISBN 1482657759.
  4. ^ Saleem Bhatti. „Kanalkapazität“. Vorlesungsunterlagen für M.Sc. Datenkommunikationsnetze und verteilte Systeme D51 – Grundlegende Kommunikation und Netzwerke. Archiviert von das Original am 21.08.2007.
  5. ^ Jim Lesurf. „Signale sehen aus wie Rauschen!“. Information und Messung, 2. Aufl.
  6. ^ Thomas M. Cover, Joy A. Thomas (2006). Elemente der Informationstheorie. John Wiley & Sons, New York.
  7. ^ „Archivierte Kopie“. Archiviert von das Original am 27.03.2005. Abgerufen 2009-01-21.CS1-Wartung: Archivierte Kopie als Titel (Link)[1]
  8. ^ ein b Paul DeMone. „Die unglaublich schrumpfende CPU“. 2004.
    [2] Archiviert 2012-05-31 an der Wayback-Maschine
  9. ^
    „Brainiacs, Speed ​​Demons und Farewell“
    von Linley Gwennap
  10. ^ Hart, Benjamin (2020-11-17). „Top 5 Dinge, die Ihren PC verlangsamen“. Hart Tech Support. Abgerufen 2020-11-17.