Instrumentacja kodu

Instrumentacja kodu – to głównie „badanie” wydajności aplikacji. A składają się na to dwa elementy:
1. Logowanie zdarzeń aplikacji, takich jak: start i koniec wykonywania metod, błędy aplikacji czy ważnych zdarzeń w aplikacji.
2. Profilowanie aplikacji – sprawdzanie czasu wykonania czy zużycia zasobów (pamięci, dysku i innych)

Prosta instrumentacja

Załóżmy, że mamy do zinstrumentowania następujący kod:

public static int fibonacci(int n) {
    int[] sequence = new int[n + 1];
    sequence[0] = 0;
    sequence[1] = 1;
    for (int i = 2; i <= n; i++) {
        sequence[i] = sequence[i - 1] + sequence[i - 2];
    }
    return sequence[n];
}

Najprostszym sposobem będzie dodanie logowania na początku i na końcu metody:

public static int fibonacci(int n) {
    System.out.println("fibonacci start:" + LocalDateTime.now());
    int[] sequence = new int[n + 1];
    sequence[0] = 0;
    sequence[1] = 1;
    for (int i = 2; i <= n; i++) {
        sequence[i] = sequence[i - 1] + sequence[i - 2];
    }
    System.out.println("fibonacci end:  " + LocalDateTime.now());
    return sequence[n];
}

Po uruchomieniu takiej metody przykładowo z argumentem 1_000_000_000 (jeden milion), na moim komputerze dostałem:

fibonacci start:2023-11-08T21:17:37.988035800
fibonacci end:  2023-11-08T21:17:46.443114400

Można łatwo zauważyć, że wykonanie metody zajęło prawie 10 sekund.

Jest to bardzo prosty sposób instrumentacji. Aktualnie używa się często specjalnie do tego przygotowanych narzędzi takich jak na przykład jprofiler czy też narzędzi wbudowanych w środowiska programistyczne.

Warto zajrzeć

1. Instrumentacja kodu (Wikipedia)

Pozostaw komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *