This is documentation for Mathematica 4, which was
based on an earlier version of the Wolfram Language.
View current documentation (Version 11.1)

 Documentation /  Mathematica /  Das Mathematica Buch /  Die Prinzipien von Mathematica /  Globale Aspekte von Mathematica-Sessionen /

DialogeSpeicherverwaltung

2.13.3 Datums- und Zeit-Funktionen

Ermitteln von Datum und Zeit

Dies ergibt das aktuelle Datum und die aktuelle Zeit.

In[1]:= Date[ ]

Out[1]=

Die Mathematica-Date-Funktion liefert, was immer Ihr Computersystem als aktuelles Datum und Zeit angibt. Sie geht davon aus, daß alle Korrekturen für Sommerzeit usw. bereits durch Ihr Computersystem erfolgten. Außerdem nimmt sie an, daß Ihr Computersystem für die entsprechende Zeitzone eingestellt wurde.

Die Funktion TimeZone[ ] gibt die aktuelle Zeitzone an, die Ihr Computersystem verwendet. Die Zeitzone wird als Anzahl von Stunden angegeben, die zur mittleren Greenwich-Zeit (GMT) addiert werden muß, um die korrekte lokale Zeit zu erhalten. So entspricht zum Beispiel die Mitteleuropäische Zeit (MEZ) der Zeitzone . Beachten Sie, daß Sommerzeitkorrekturen in der Zeitzone enthalten sein müssen, so daß die mitteleuropäische Sommerzeit der Zeitzone entspricht.

Dies ergibt die aktuelle Zeitzone Ihres Computersystems.

In[2]:= TimeZone[ ]

Out[2]=-6.

Dies gibt das aktuelle Datum und die aktuelle Zeit in der Zeitzone +9, der Zeitzone von Japan.

In[3]:= Date[9]

Out[3]=

Zeit-Funktionen

Sie sollten wissen, daß es auf jedem Computersystem eine gewisse Grundeinheit oder „Granularität" für die Zeitmessung gibt. Diese Granularität ist gegeben durch den Wert der globalen Variablen $TimeUnit. In der Regel ist sie ungefähr einer Sekunde.

Pausieren während einer Berechnung

Dies ergibt verschiedene Zeitfunktionen.

In[4]:= {AbsoluteTime[ ], SessionTime[ ], TimeUsed[ ]}

Out[4]=

Hier wird für 10 Sekunden pausiert, und dann werden die Zeit-Funktionen wieder evaluiert. Beachten Sie, daß TimeUsed[ ] von der Pause unberührt bleibt.

In[5]:= Pause[10]; {AbsoluteTime[ ], SessionTime[ ],
TimeUsed[ ]}

Out[5]=

Wandlung zwischen Datum und absoluter Zeit

Dies setzt d gleich dem aktuellen Datum.

In[6]:= d = Date[ ]

Out[6]=

Dies addiert einen Monat zum aktuellen Datum.

In[7]:= Date[ ] + {0, 1, 0, 0, 0, 0}

Out[7]=

Dies ergibt die Anzahl Sekunden im zusätzlichen Monat.

In[8]:= FromDate[%] - FromDate[d]

Out[8]=

Ausführungszeit von Mathematica-Operationen messen

Mit Timing können Sie die CPU-Zeit messen, die dem Zuwachs in TimeUsed entspricht, der mit der Evaluierung eines einzelnen Mathematica-Ausdrucks verknüpft ist. Beachten Sie, daß nur jene CPU-Zeit gezählt wird, die zur eigentlichen Auswertung des Ausdrucks innerhalb des Mathematica-Kerns verwendet wird. Die Zeit, die zur Formatierung des Ausdrucks für die Ausgabe benötigt wird, und eine etwaige Zeit für externe Programme wird nicht mitgezählt.

Sie sollten wissen, daß die von Timing für eine bestimmte Berechnung angegebene Zeit von vielen Faktoren abhängt.

Zuerst einmal hängt die Zeit im einzelnen vom Computersystem, das Sie benutzen, ab. Sie hängt nicht nur von den Ausführungszeiten der Anweisungen ab, sondern auch vom Einsatz eines Cache-Speichers, sowie davon, wie die Kompilierung bei den Teilen des internen Codes von Mathematica, die in der Berechnung verwendet werden, im einzelnen optimiert wurde.

Die Zeit hängt auch vom präzisen Zustand Ihrer Mathematica-Session zu dem Zeitpunkt, als die Berechnung erfolgte, ab. Viele der von Mathematica verwendeten internen Optimierungen hängen von den Einzelheiten vorangehender Berechnungen ab. Zum Beispiel verwendet Mathematica häufig vorangehende Ergebnisse, die es erhalten hat, und vermeidet unnötige erneute Evaluierungen von Ausdrücken. Außerdem konstruieren einige Mathematica-Funktionen interne Tabellen, wenn sie das erste Mal auf bestimmte Weise aufgerufen werden, so daß sie sehr viel schneller laufen, wenn sie auf diese Weise erneut aufgerufen werden. Aus allen diesen Gründen ergeben sich häufig unterschiedliche Laufzeiten für eine bestimmte Operation, die an verschiedenen Punkten einer Mathematica-Session gestartet wird.

Dies ergibt die für die Berechnung benötigte CPU-Zeit. Das Semikolon bewirkt, daß das Ergebnis der Berechnung als Null ausgegeben wird.

In[9]:= Timing[1000!;]

Out[9]=

Jetzt hat Mathematica interne Tabellen für die Fakultäts-Funktionen erstellt, und die Berechnung benötigt viel weniger Zeit.

In[10]:= Timing[1000!;]

Out[10]=

Beachten Sie: Die Ergebnisse, die Sie mit Timing erhalten, sind nur genau bis zur Zeit-Granularität $TimeUnit Ihres Computersystems. So könnte zum Beispiel eine als 0 angegebene gemessene Zeitdauer bis zu $TimeUnit gedauert haben.

Zeitbeschränkte Berechnung

Setzen Sie Mathematica interaktiv ein, so werden Sie häufig eine Berechnung starten, diese aber dann abbrechen, wenn sie scheinbar zu lange dauert. Dieses Verhalten kann innerhalb eines Programmes mit TimeConstrained emuliert werden. TimeConstrained versucht, eine bestimmte Berechnung innerhalb einer spezifizierten Zeitdauer zu evaluieren. Gelingt dies nicht, so wird die Berechnung abgebrochen, und es wird entweder $Aborted oder ein von Ihnen angegebener Ausdruck zurückgegeben.

Mit TimeConstrained können Sie zum Beispiel erreichen, daß Mathematica einen bestimmten Ansatz für eine bestimmte Zeit verfolgt und dann zu einem anderen Ansatz wechselt, wenn der erste bislang nicht erfolgreich war. Sie sollten jedoch wissen, daß mit TimeConstrained die von Ihnen vorgegebene Zeit überschritten werden kann, wenn Mathematica während eines bestimmten Teils einer Berechnung nicht unterbrochen werden kann. Außerdem sollten Sie sich bewußt machen: Weil verschiedene Computersysteme mit verschiedenen Geschwindigkeiten laufen, werden Programme, die TimeConstrained verwenden, häufig auf verschiedenen Systemen zu verschiedenen Ergebnissen führen.

DialogeSpeicherverwaltung