Lotus Notes / Domino Sonstiges > Java und .NET mit Notes/Domino

Zeitmessungen für Java

<< < (2/5) > >>

flaite:
ok. Muß jetzt noch arbeiten. Um ca. 21 Uhr kann ich mich damit beschäftigen.

jBubbleBoy:
für LotusScript


--- Code: ---Sub Initialize

Dim filename$, filenum%
Dim t1, t2, a%, s$, b%
filename = "c:\temp\ls.txt"


For a = 0 To 99
s = s + "a"
Next

For b = 1 To 20

killFileName filename
t1 = Timer

filenum = Freefile()
Open filename For Output As filenum
For a = 0 To 999
Print #filenum, s
Next
Close(filenum)

t2 = Timer
Print b & " --> " & (t2 - t1) * 1000

Next

End Sub

Sub killFileName( FileName As String)
On Error Goto ErrorZ
Kill FileName
Goto EndeZ
ErrorZ:
Resume EndeZ
EndeZ:
End Sub

--- Ende Code ---

Ergebnis in Millisekunden

koehlerbv:
Das ist schlechter Code:
Dim t1, t2, a%, s$, b%    -> t1 und t2 sind jetzt Variants. Kann in die Hose gehen
s = s + "a"   -> + ist kein String-Concatenator
Print b & " --> " & (t2 - t1) * 1000    -> Typwandlung wird LS überlassen

Das Ganze geht hier gut, kann aber in der Praxis zu Ergebnissen führen, die ganz anders aussehen, als man beim Schreiben erwartet hätte.  ;D

Bernhard

PS: Ich würde die Zeitmessung erst nach dem Anlegen des Files starten, sonst spielt hier die API des Systems mit herein und die Organisation der HDD.

flaite:
Hier sind die Ergebnisse für C#. Dennis will nach Hause. (Ergebnisse in Milisekunden).

1:49
2:91
3:7
4:7
5:7
6:31
7:7
8:30
9:7
10:7
11:7
12:7
13:7
14:23
15:44
16:36
17:21
18:7
19:7
20:7


--- Code: ---using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
using System.Diagnostics;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
           
            for (int j = 1; j <= 20; j++)
            {
                Stopwatch watch = new Stopwatch();
                watch.Start();

                StringBuilder sb = new StringBuilder(100);
                for (int i = 0; i < 100; i++)
                {
                    sb.Append("a");
                }
                StreamWriter sw = File.CreateText("C:\\temp\\myCShark.txt");
                for (int i = 0; i < 1000; i++)
                {
                    sw.WriteLine(sb.ToString());
                }

                sw.Close();
                watch.Stop();
                Console.WriteLine(j.ToString() + ":" + watch.ElapsedMilliseconds.ToString());


            }

            Console.ReadLine();

        }
    }
}

--- Ende Code ---
Der Code kann sicher noch bedeutend optimiert werden. Das gleiche gilt für den bald folgenden Java Code.

jBubbleBoy:
@bernhard
Wie sieht denn ein "String-Concatenator" aus?

Navigation

[0] Themen-Index

[#] Nächste Seite

[*] Vorherige Sete

Zur normalen Ansicht wechseln