Thema Datum  Von Nutzer Rating
Antwort
21.01.2021 14:01:22 Josi
NotSolved
21.01.2021 16:39:58 Mase
NotSolved
21.01.2021 18:51:31 Josi
NotSolved
21.01.2021 19:35:52 Mase
Solved
22.01.2021 00:47:18 Trägheit
NotSolved
23.01.2021 00:36:32 Josi
NotSolved
23.01.2021 09:01:50 Trägheit
Solved
Blau Performancetest
24.01.2021 14:26:00 Mase
NotSolved
24.01.2021 15:07:12 Gast60920
NotSolved
24.01.2021 23:45:15 Trägheit
NotSolved
25.01.2021 13:51:26 Gast87947
NotSolved
25.01.2021 14:12:39 Trägheit
NotSolved
25.01.2021 14:17:46 Gast38141
NotSolved
25.01.2021 14:18:12 Trägheit
NotSolved
25.01.2021 14:20:53 Gast69064
NotSolved
25.01.2021 14:13:56 Gast38468
NotSolved
25.01.2021 14:24:17 Gast22640
NotSolved
25.01.2021 14:30:35 Mase
NotSolved
25.01.2021 14:34:13 Trägheit
NotSolved
25.01.2021 14:39:37 Gast45647
NotSolved
25.01.2021 14:37:27 Gast94250
NotSolved
25.01.2021 14:42:25 Trägheit
NotSolved
25.01.2021 14:54:12 Gast60972
NotSolved
25.01.2021 15:07:41 Gast85110
NotSolved
25.01.2021 15:10:30 Trägheit
Solved
25.01.2021 17:14:04 Gast10475
NotSolved
21.01.2021 17:16:21 Patrick
NotSolved
21.01.2021 17:17:27 Gast35717
NotSolved
21.01.2021 18:57:30 Josi
NotSolved
21.01.2021 19:12:47 Gast16558
NotSolved
21.01.2021 19:32:05 Gast70079
NotSolved
21.01.2021 19:27:12 Patrick
Solved
22.01.2021 10:12:12 GraFri
NotSolved

Ansicht des Beitrags:
Von:
Mase
Datum:
24.01.2021 14:26:00
Views:
504
Rating: Antwort:
  Ja
Thema:
Performancetest

Messwerte der gezeigten Varianten gegenübergestellt.

Wobei der Vergleich mit Konstanten bei Masseverarbeitung (logischerweise) schneller ist als der Vergleich von Zeichenketten.

############################################################
## Schleifenzähler:= Const iCount as Long =  10 ^ 4    #####
############################################################
[CheckBoxen zur Laufzeit erzeugen]        00:00:08,460938sek
[ForEachTypeName]                         00:00:00,031250sek
[ForEachTypeOf]                           00:00:00,019531sek
[ForI]                                    00:00:02,730469sek
############################################################
## Schleifenzähler:= 1 To 10 ^ 4                       #####
############################################################
[CheckBoxen zur Laufzeit erzeugen]        00:00:08,339844sek
[ForEachTypeName]                         00:00:00,031250sek
[ForEachTypeOf]                           00:00:00,023438sek
[ForI]                                    00:00:02,808594sek
############################################################
## Schleifenzähler:= 1 To 10000                        #####
############################################################
[CheckBoxen zur Laufzeit erzeugen]        00:00:08,222656sek
[ForEachTypeName]                         00:00:00,031250sek
[ForEachTypeOf]                           00:00:00,023438sek
[ForI]                                    00:00:02,726563sek

 

Quellcode

'***** UserForm:            UserForm1

'***** CommandButton: cmdExit

'***** CommandButton: cmdGo

 

Option Explicit
Const iCount As Long = 10 ^ 4

Private Sub cmdExit_Click()
    Unload Me
End Sub

Private Sub cmdGo_Click()
    Call main
End Sub

Private Sub UserForm_Initialize()
    
    Dim i As Long
    Dim t
    
    t = Timer
    For i = 1 To 10000
        Me.Controls.Add "Forms.Checkbox.1"
        DoEvents
    Next i
    Debug.Print "############################################################"
    Debug.Print "## Schleifenzähler:= 1 To 10 ^ 4                       #####"
    Debug.Print "############################################################"
    Debug.Print "[CheckBoxen zur Laufzeit erzeugen]       ", Format(Timer - t, "00:00:00.000000") & "sek"
    
End Sub

Sub main()
    
    Dim t
    
    UserForm1.Caption = "Läuft..."
    
    
    t = Timer:  Call ForEachTypeName
    Debug.Print "[ForEachTypeName]                 ", Format(Timer - t, "00:00:00.000000") & "sek"
    
    t = Timer:  Call ForEachTypeOf
    Debug.Print "[ForEachTypeOf]                   ", Format(Timer - t, "00:00:00.000000") & "sek"
    
    t = Timer:  Call ForI
    Debug.Print "[ForI]                            ", Format(Timer - t, "00:00:00.000000") & "sek"

    UserForm1.Caption = "Fertig"
    
End Sub
Sub ForEachTypeName()
    
    Dim ctl As MSForms.Control
    
    For Each ctl In UserForm1.Controls
        If TypeName(ctl) = "CheckBox" Then
            ctl.Value = False
        End If
    Next ctl
    
End Sub

Sub ForEachTypeOf()
    
    Dim ctl As MSForms.Control
    
    For Each ctl In UserForm1.Controls
        If TypeOf ctl Is MSForms.CheckBox Then
            ctl.Value = False
        End If
    Next ctl
    
End Sub

Sub ForI()

    Dim i As Long
    
    For i = 1 To 10000
      Me.Controls("CheckBox" & i).Value = False
    Next
    
End Sub

 

 

Hinweis:

Der Harcodierte Schleifenzähler der For-Schleife war der schnellste, wenngleich für den User unwirklich spürbar.


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
21.01.2021 14:01:22 Josi
NotSolved
21.01.2021 16:39:58 Mase
NotSolved
21.01.2021 18:51:31 Josi
NotSolved
21.01.2021 19:35:52 Mase
Solved
22.01.2021 00:47:18 Trägheit
NotSolved
23.01.2021 00:36:32 Josi
NotSolved
23.01.2021 09:01:50 Trägheit
Solved
Blau Performancetest
24.01.2021 14:26:00 Mase
NotSolved
24.01.2021 15:07:12 Gast60920
NotSolved
24.01.2021 23:45:15 Trägheit
NotSolved
25.01.2021 13:51:26 Gast87947
NotSolved
25.01.2021 14:12:39 Trägheit
NotSolved
25.01.2021 14:17:46 Gast38141
NotSolved
25.01.2021 14:18:12 Trägheit
NotSolved
25.01.2021 14:20:53 Gast69064
NotSolved
25.01.2021 14:13:56 Gast38468
NotSolved
25.01.2021 14:24:17 Gast22640
NotSolved
25.01.2021 14:30:35 Mase
NotSolved
25.01.2021 14:34:13 Trägheit
NotSolved
25.01.2021 14:39:37 Gast45647
NotSolved
25.01.2021 14:37:27 Gast94250
NotSolved
25.01.2021 14:42:25 Trägheit
NotSolved
25.01.2021 14:54:12 Gast60972
NotSolved
25.01.2021 15:07:41 Gast85110
NotSolved
25.01.2021 15:10:30 Trägheit
Solved
25.01.2021 17:14:04 Gast10475
NotSolved
21.01.2021 17:16:21 Patrick
NotSolved
21.01.2021 17:17:27 Gast35717
NotSolved
21.01.2021 18:57:30 Josi
NotSolved
21.01.2021 19:12:47 Gast16558
NotSolved
21.01.2021 19:32:05 Gast70079
NotSolved
21.01.2021 19:27:12 Patrick
Solved
22.01.2021 10:12:12 GraFri
NotSolved