Dhrystone

Dhrystone ist ein synthetisches Rechenabrisspunkt-Programm entwickelt 1984 von Reinhold P. Weicker, der beabsichtigt ist, um das System (ganze Zahl) Programmierung vertretend zu sein. Der Dhrystone ist gewachsen, um vertretend den allgemeinen Verarbeiter (Zentraleinheit) Leistung zu werden. Der Name "Dhrystone" ist ein Wortspiel über einen verschiedenen Abrisspunkt-Algorithmus genannt der Schleifstein.

Mit Dhrystone hat Weicker Meta-Daten von einer breiten Reihe der Software einschließlich Programme gesammelt, die in FORTRAN, PL/1, SALZ, Algol 68, und Pascal geschrieben sind. Er hat dann diese Programme in Bezug auf verschiedene allgemeine Konstruktionen charakterisiert: Verfahren-Anrufe, Zeigestock-Umwege, Anweisungen, usw. Davon hat er den Abrisspunkt von Dhrystone geschrieben, um einer vertretenden Mischung zu entsprechen. Dhrystone wurde in Ada mit der C Version für Unix veröffentlicht, der von Rick Richardson ("Version 1.1") außerordentlich das Beitragen zu seiner Beliebtheit entwickelt ist.

Dhrystone gegen den Schleifstein

Der Dhrystone-Abrisspunkt enthält keine Schwimmpunkt-Operationen, so ist der Name ein Wortspiel über den dann populären Schleifstein-Abrisspunkt, um Punkt-Operationen schwimmen zu lassen. Die Produktion vom Abrisspunkt ist die Zahl von Dhrystones pro Sekunde (die Zahl von Wiederholungen der Hauptcodeschleife pro Sekunde).

Sowohl Whetstone als auch Dhrystone sind synthetische Abrisspunkte, meinend, dass sie einfache Programme sind, die sorgfältig entworfen werden, um den Verarbeiter-Gebrauch von einem Standardset von Programmen statistisch nachzuahmen. Schleifstein, entwickelt 1972, hat sich ursprünglich gemüht, typisches ALGOL 60 Programme nachzuahmen, die auf Maßen von 1970 gestützt sind, aber ist schließlich am populärsten in seiner Version von Fortran geworden, die hoch numerische Orientierung der Computerwissenschaft in den 1960er Jahren widerspiegelnd.

Probleme von Dhrystone gerichtet

Die schließliche Wichtigkeit von Dhrystone als ein Hinweis von Mehrzweck-("ganze Zahl") Leistung von neuen Computern hat es ein Ziel für kommerzielle Bearbeiter-Schriftsteller gemacht. Verschiedener moderner Bearbeiter statische Codeanalyse-Techniken (wie Beseitigung des toten Codes: Zum Beispiel, Code, der den Verarbeiter verwendet, aber innere Ergebnisse erzeugt, die nicht verwendet werden oder Produktion) machen den Gebrauch und das Design von synthetischen Abrisspunkten schwieriger. Die Version 2.0 des Abrisspunkts, der von Weicker und Richardson im März 1988 veröffentlicht ist, hat mehrere Änderungen beabsichtigt lassen, um eine Reihe von Bearbeiter-Techniken zu vereiteln. Und doch wurde es sorgfältig gefertigt, um den zu Grunde liegenden Abrisspunkt nicht zu ändern. Diese Anstrengung, Bearbeiter zu vereiteln, war nur teilweise erfolgreich. Dhrystone 2.1, veröffentlicht im Mai desselben Jahres, hatte einige geringe Änderungen und bleibt die aktuelle Definition von Dhrystone.

Anders als mit der Bearbeiter-Optimierung verbundene Probleme sind verschiedene andere Probleme mit Dhrystone zitiert worden. Die meisten von diesen, einschließlich der kleinen Codegröße und kleinen Datei-Größe, wurden zur Zeit seiner Veröffentlichung 1984 verstanden. Feiner ist die geringe Überdarstellung von Schnur-Operationen, die größtenteils sprachverbunden wird: Sowohl Ada als auch Pascal haben Schnuren als normale Variablen auf der Sprache, wohingegen C nicht so tut, was einfache variable Anweisung in Bezugsabrisspunkten war, ist Pufferkopie-Operationen in der C Bibliothek geworden. Ein anderes Problem ist, dass die Kerbe berichtet hat, schließt Information nicht ein, die kritisch ist, wenn sie Systeme solcher als vergleicht, welcher Bearbeiter, und was Optimierungen verwendet wurde.

Dhrystone bleibt bemerkenswert elastisch als ein einfacher Abrisspunkt, aber sein ständiger Wert im Herstellen wahrer Leistung ist zweifelhaft. Es ist leicht, gut dokumentiert, völlig geschlossen, gut verstanden zu verwenden, und kann gemacht werden, an fast jedem System zu arbeiten. Insbesondere es ist im breiten Gebrauch in der eingebetteten Rechenwelt geblieben, obwohl das kürzlich entwickelte EEMBC-Abrisspunkt-Gefolge, der HINWEIS, der Strom und sogar Bytemark weit angesetzt und, sowie spezifischere Abrisspunkte für das Speichersubsystem (Cachebench), TCP/IP (TTCP), und viele andere verwendet werden.

Dhrystone bleibt im Gebrauch 20 Jahre, nachdem es von Weicker, einem längeren Leben entworfen wurde als der grösste Teil der Software.

Dhrystone dagegen. CoreMark

CoreMark ist ein kleiner Abrisspunkt, der vom gemeinnützigen Eingebetteten Mikroprozessor-Abrisspunkt-Konsortium (EEMBC) veröffentlicht ist, der den Zentraleinheitskern ins Visier nimmt, der Dhrystone ähnlich ist. Beide Abrisspunkte stehen kostenlos zur Verfügung und sind klein genug, um auf jedem Verarbeiter einschließlich kleiner Mikrokontrolleure durchzuführen. CoreMark vermeidet Probleme wie der Bearbeiter, die Arbeit während der Übersetzungszeit schätzend, und verwendet echte Algorithmen, anstatt völlig synthetisch zu sein. CoreMark hat auch Regeln gegründet, für den Abrisspunkt zu führen und für die Ergebnisse zu melden.

Ergebnisse

Dhrystone versucht, das Ergebnis bedeutungsvoller zu vertreten, als MIPS (Million Instruktionen pro Sekunde) weil Instruktionsvergleiche der Zählung zwischen verschiedenen Befehlssätzen (z.B. RISC dagegen. CISC) kann einfache Vergleiche verwechseln. Zum Beispiel kann dieselbe Aufgabe auf höchster Ebene noch viele Instruktionen auf einer RISC Maschine verlangen, aber könnte schneller durchführen als eine einzelne CISC Instruktion. So zählt die Kerbe von Dhrystone nur die Zahl von Programm-Wiederholungsvollziehungen pro Sekunde auf, individuellen Maschinen erlaubend, diese Berechnung auf eine maschinenspezifische Weise durchzuführen. Eine andere allgemeine Darstellung des Abrisspunkts von Dhrystone ist der DMIPS (Dhrystone MIPS) erhalten, wenn die Kerbe von Dhrystone vor 1757 (die Zahl von Dhrystones geteilt wird, der pro Sekunde auf dem VAX 11/780, nominell eine 1 MIPS Maschine erhalten ist).

Mängel

Mit Dhrystone weil hat ein Abrisspunkt Fallen:

  • es zeigt ungewöhnlichen Code, der nicht gewöhnlich Vertreter von wahren Programmen ist
  • es ist gegen Bearbeiter-Optimierungen empfindlich. Zum Beispiel tut es viel Schnur, die in einem Versuch kopiert, Schnur-Kopieren-Leistung zu messen. Jedoch sind die Schnuren in Dhrystone der bekannten unveränderlichen Länge, und ihre Anfänge werden an natürlichen Grenzen, zwei Eigenschaften ausgerichtet, die gewöhnlich aus echten Programmen fehlen. Deshalb kann ein optimizer eine Schnur-Kopie durch eine Folge von Wortbewegungen ohne irgendwelche Schleifen ersetzen, die viel schneller sein werden. Diese Optimierung übertreibt folglich Systemleistung manchmal um mehr als 30 %.
  • Die kleine Codegröße von Dhrystone kann das geheime Instruktionslager einer modernen Zentraleinheit einfügen, so dass Instruktionsabruf-Leistung nicht streng geprüft wird.

Siehe auch

  • Abrisspunkt, (rechnend)
  • Schleifstein (Abrisspunkt)

Referenzen

Bibliografie

  • Weicker, Reinhold. "Dhrystone: Synthetische Systeme, Abrisspunkt" Kommunikationen des ACM (CACM), des Bands 27, der Nummer 10, Oktober 1984, p Programmierend. 1013-1030.

Links


Arzt Syn / Dave Winer
Impressum & Datenschutz