Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
936to940
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
936to940
936to940
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Berechnungsdauer einer UDF messen

Berechnungsdauer einer UDF messen
02.01.2008 20:58:00
{Boris}
Hi Leute,
wie kann man die Berechnungsdauer einer UDF messen, z.B. für folgendes Dummy-Beispiel:
Function Dummy() As Long Dim x As Long For x = 1 To 200000000 Next Dummy = 1 End Function


Tabelle1

 A
11

Formeln der Tabelle
ZelleFormel
A1=dummy()


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4
Wie lange hat der Rechner nun gerödelt?
Grüße Boris

15
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Berechnungsdauer einer UDF messen
02.01.2008 21:08:16
K.Rola
Hallo,
glückliches Jahr 2008, Liebes.

Function Dummy() As Long
Dim x As Long, Start As Long
Start = Timer
For x = 1 To 200000000
Next
Dummy = 1
MsgBox Timer - Start
End Function


Gruß K.Rola

AW: Berechnungsdauer einer UDF messen
02.01.2008 21:13:02
{Boris}
Hi Hasi,
ebenfalls ein frohes Neues!
Bei diesem Dummy war das gut messbar - verkürze ich die Schleife auf 200, dann kommt ein negatives(?!) Ergebnis raus. Wie geht denn das zusammen?
G+K
Boris

AW: Berechnungsdauer einer UDF messen
02.01.2008 21:37:50
K.Rola
Hallo,
Private Declare

Function GetTickCount& Lib "Kernel32" ()


Function Dummy() As Long
Dim x As Long, tc As Long
tc = GetTickCount
For x = 1 To 200000000
Next
Dummy = 1
MsgBox GetTickCount - tc
End Function


Wenn du es noch geanuer brauchst, steigt der Aufwand gleich mächtig, ist aber machbar.
Gruß K.Rola

Anzeige
AW: Berechnungsdauer einer UDF messen
02.01.2008 21:47:20
{Boris}
Liebes,
nochmals besten Dank!
Wenn du es noch geanuer brauchst, steigt der Aufwand gleich mächtig, ist aber machbar.
An Deinen pfiffigen Lösungen bin ich natürlich immer interessiert. :-)
Das mach ich aber mal von Deiner Zeit und Lust, ganz nach Deinem Ausspruch
Wenn man gerade nichts Besseres vorhat...
abhängig ;-)
Grüße Boris

AW: Berechnungsdauer einer UDF messen
02.01.2008 21:08:40
Hajo_Zi
Hallo Boris,
in Sekunden?

Option Explicit
Function Dummy() As Date
Dim DaZeit As Date
DaZeit = Time
Dim x As Long
For x = 1 To 200000000
Next
Dummy = Time - DaZeit
End Function



Anzeige
AW: Berechnungsdauer einer UDF messen
02.01.2008 21:16:10
{Boris}
Hi Hajo,
danke. In diesem Beispiel kann man sicherlich Sekunden messen. Es sollte aber auch im Bruchteilsbereich funktionieren.
Grüße Boris

AW: Berechnungsdauer einer UDF messen
02.01.2008 21:18:07
MichaV
Hallo Boris,


Option Explicit
Private Declare Function timeGetTime Lib "winmm.dll" () As Long
Private lngStartTime As Long
Public Sub StartTimer()
  lngStartTime = timeGetTime
End Sub
Public Function EndTimer() As Long
  EndTimer = timeGetTime - lngStartTime
End Function
Function Dummy() As Long
StartTimer
Dim x As Long
For x = 1 To 200000
Next
Dummy = 1
MsgBox EndTimer & " ms"
End Function


Gruß- Micha
PS: Rückmeldung wäre nett.
PPS: http://www.online-excel.de/fom/fo_read.php?f=1&bzh=10776&h=10770

Anzeige
AW: Berechnungsdauer einer UDF messen
02.01.2008 21:28:00
{Boris}
Hi Micha,
besten Dank. Bei kleiner Schleife zeigt´s zwar immer Null - aber ich brauch´s auch nur für etwas umfangreichere UDFs. Und scheint Dein Vorschlag sehr gut zu sein!
Grüße Boris

AW: Berechnungsdauer einer UDF messen
02.01.2008 21:36:00
MichaV
Hallo Boris,
zu K.Rolas Variante (ich wollte mich oben nicht in Eurer kuscheliges Gespräch einmischen): da kommt die Ungenauigkeit bei der Zuweisung zum Long- Datentyp zum Vorschein. Versuch(t) mal


Option Explicit
Function Dummy() As Long
Dim x As Long, Start As Long, Ende As Long
Start = Timer
For x = 1 To 200
Next
Dummy = 1
Ende = Timer
MsgBox Ende - Start
End Function


..allerdings gibts hier um Mitternacht Probleme, weil Timer dann auf 0 zurückspringt. Bei der API- Variante gibts nur alle 48 Tage Probleme.
Gruß- Micha

Anzeige
AW: Berechnungsdauer einer UDF messen
02.01.2008 21:43:00
{Boris}
Hi Micha,
nochmals danke. Aber hier hast Du - glaube ich - wahrscheinlich falsch reinkopiert. Die Variablen sollten wohl alle vom Typ Double sein ;-). Hab´s zumindest so getestet - und funktioniert.
Grüße Boris

AW: Berechnungsdauer einer UDF messen
02.01.2008 21:57:00
MichaV
Hallo Boris,
die Timer- Funktionen geben Long zurück. Warum soll ich dann alles als Double deklarieren?
Gruß- Micha

Dann hab ich Dich falsch verstanden...
02.01.2008 22:07:00
{Boris}
Hi Micha,
...da kommt die Ungenauigkeit bei der Zuweisung zum Long- Datentyp zum Vorschein...
Sei´s drum - et lüppt!
Grüße Boris

AW: Dann hab ich Dich falsch verstanden...
02.01.2008 22:15:00
MichaV
Hallo,
ich hab mich auch gewundert. Timer gibt den Daten vom Typ Single zurück, und das wird in diesem Beispielcode in eine Long- Variable umgewandelt.
Es hätte also gereicht:
...
Dim x As Long, Start As Single
Start = Timer
...
Hatte ich nicht gesehen, und nun wieder was gelernt.
So, und nun wirklich Schluß.
Gruß- Micha

Anzeige
AW: Berechnungsdauer einer UDF messen
02.01.2008 22:13:49
Uduuh
Hallo Micha,
aus der Hilfe:

Timer-Funktion
Gibt einen Wert vom Typ Single zurück, der die Anzahl der seit Mitternacht vergangenen Sekunden  _
angibt.
Syntax
Timer
Bemerkungen
Unter Microsoft Windows gibt die Timer-Funktion Bruchteile einer Sekunde zurück. Auf dem Macintosh ist die Einheit eine Sekunde.


Gruß aus’m Pott
Udo

02.01.2008 22:17:00
MichaV
Hallo Udo,
ja danke :o) Irgendwie hatte ich das auch gerade in der Hilfe gelesen...
Gruß- Micha

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige