Mit diesem Script kannst Du das ganz einfach selbst messen:
| On Error GoTo ErrorRoutine |
| |
| Dim ses As New NotesSession |
| |
| Dim db1 As NotesDatabase |
| Dim db2 As NotesDatabase |
| |
| Dim strServer As String |
| Dim strDb As String |
| |
| Dim dblStart As Double |
| Dim dblEnd As Double |
| |
| Dim dblTime1 As Double |
| Dim dblTime2 As Double |
| |
| Dim dblTicsPerSecond As Double |
| |
| dblTicsPerSecond = GetThreadInfo( LSI_THREAD_TICKS_PER_SEC ) |
| |
| strServer = "" |
| strDb = "apps\Tli\Test.nsf" |
| |
| dblStart = GetThreadInfo(LSI_THREAD_TICKS) |
| Set db1 = ses.Currentdatabase |
| dblEnd = GetThreadInfo(LSI_THREAD_TICKS) |
| |
| dblTime1 = dblEnd - dblStart |
| Print "Time 1: " & CStr( dblTime1 ) & " = " & CStr( dblTime1 / dblTicsPerSecond ) & " sec" |
| |
| dblStart = GetThreadInfo(LSI_THREAD_TICKS) |
| Set db2 = New NotesDatabase( strServer, strDb ) |
| dblEnd = GetThreadInfo(LSI_THREAD_TICKS) |
| |
| dblTime2 = dblEnd - dblStart |
| Print "Time 2: " & CStr( dblTime2 ) & " = " & CStr( dblTime2 / dblTicsPerSecond ) & " sec" |
| |
| EndOfRoutine: |
| Exit Sub |
| ErrorRoutine: |
| Print Error & " in line " & Err |
| Resume EndOfRoutine |
Wenn Du ganz sicher sein willst, dass nicht caching Deine Ergebnisse verfälscht, machst Du halt zwei Agenten, bei denen einmal über CurrentDatabase und einmal über open geöffnet wird...
In meiner Messung mit einer recht grossen Datenbank habe ich tatsächlich einen signifikanten Unterschied festgestellt:
ses.CurrentDatabase = 0 Tics / 0 sec
New Database = 16 Tics / 0,16 sec
Ist auch logisch: Denn ses.CurrentDatabase ist ja schon als Objekt da und wird nur der Variable zugewiesen, während New tatsächlich ein neues Objekt erstellt.
Ob es Sinn macht, sich um diese 0,16 sec Gedanken zu machen... Es gibt sicher schlimmere Performance- bremsen.