czas wykonywania programu

0

Jak najprościej sprawdzić ile czasu wykonywał się program??

0

Przy włączaniu stworzyć licznik :).

0

Jak włączyć ten licznik??

0

znalezc w manualu cos takiego jak unix time, przypisac do zmiennej na poczatku programu o nazwie start.. na koncu programu znowu pod nazwa end

[czas wykonywania] = (end) - (start)

0

Chciałem odświeżyć temat. Niestety nie mogę sobie poradzić z tym. Potrzebuję sprawdzić jak długo wykonuje się program z dokładnością do ms. Proszę o pomoc.

0
   long start=System.currentTimeMillis();
   .......
   long stop=System.currentTimeMillis();
   System.out.println("Czas wykonania (w milisekundach): "+(stop-start));
0
bogdans napisał(a)
   long start=System.currentTimeMillis();
   .......
   long stop=System.currentTimeMillis();
   System.out.println("Czas wykonania (w milisekundach): "+(stop-start));

Dzięki wielkie za szybką i konkretną odpowiedź. Martwi mnie jedna rzecz. Cały czas różnica = 0. I faktycznie
start = stop. Aż nie chce mi się wierzyć bo testuje czas wykonywania nastepujacej petli:

public static int szukajKlucza(int min, int max, int jaw, int zasz){
        int i;
        int kluczyk=0;
        
        for (i=min; i<=max; i++){
            if ((jaw ^ i) == zasz)
                kluczyk=i;
        }
    
        return kluczyk;

min =0 max = 999999999
Ciąg jawny = 123456789 zaszyfrowany = 642177014.
Czy to nie jest dziwne. Nie wykonuje się nawet 1 ms?

0

Trochę dziwne.
Fragment dokumentacji metody currentTimeMillis():
Returns the current time in milliseconds. Note that while the unit of time of the return value is a millisecond, the granularity of the value depends on the underlying operating system and may be larger. For example, many operating systems measure time in units of tens of milliseconds.
Wypróbuj

System.nanoTime()
0
bogdans napisał(a)

Trochę dziwne.
Fragment dokumentacji metody currentTimeMillis():
Returns the current time in milliseconds. Note that while the unit of time of the return value is a millisecond, the granularity of the value depends on the underlying operating system and may be larger. For example, many operating systems measure time in units of tens of milliseconds.
Wypróbuj

System.nanoTime()

Dzięki wielkie. Tu już pokazuje różnice 504922. Czy to są nanosekundy? Może tamta metoda nie zawsze działa. Myślę że parę ms powinno być.

0

to są nanosekundy, 504922 nanosekund = 0,504922 milisekundy
zwróć uwagę na ten fragment dokumentacji
many operating systems measure time in units of tens of milliseconds

0
Drza napisał(a)

Dzięki wielkie za szybką i konkretną odpowiedź. Martwi mnie jedna rzecz. Cały czas różnica = 0.

currentTimeMillis()- opoznienie wynos 15ms dla winXp, z tego co pamietam cos kolo 50 dla win98, oraz 1ms na linuxie

0
m1c4u napisał(a)
Drza napisał(a)

Dzięki wielkie za szybką i konkretną odpowiedź. Martwi mnie jedna rzecz. Cały czas różnica = 0.

currentTimeMillis()- opoznienie wynos 15ms dla winXp, z tego co pamietam cos kolo 50 dla win98, oraz 1ms na linuxie

Mógłbyś napisać co to oznacza, że opóźnienie wynosi 15ms. To znaczy, że nie moge sobie potestować dla funkcji currentTimeMillis() czasu wykonywania programu? Czy;i lepiej i dokładniej używać nanoTime()?

0
Drza napisał(a)

Mógłbyś napisać co to oznacza, że opóźnienie wynosi 15ms. To znaczy, że nie moge sobie potestować dla funkcji currentTimeMillis() czasu wykonywania programu? Czy;i

Oznacza to, ze 2 krotne wywolanie currentTimeMillis() w przeciagu 15ms zwroci ta sama liczbe

1 użytkowników online, w tym zalogowanych: 0, gości: 1