Własny Wily Introscope
Taktyka: Jest sporo narzędzi do modyfikacji bajtkodu Javy - użyjemy jednego z nich np. Javassist. Dzięki temu będziemy mogli zinstrumentalizować klasy Javy tak, żeby na każdym wywołaniu metody mierzyć czas. Teraz trzeba wpiąć się w jakiś sposób do JVM, żeby z dogodnej pozycji modyfikować ładowane klasy. Weźmiemy się za sun.misc.Launcher, który posiada metodę loadClass. Możemy stworzyć własną wersję Launcher-a i ładować go za pomocą -Xbootclasspath/p:ścieżka_do_naszej_nowej_zabawki.
Najbardziej pracochłonnym zadaniem jest opracowanie struktur do przechowywania wyników.
Co dalej wypadałoby zrobić z kodem? Osobny wątek zapisujący częściowe rezultaty. Wysyłaniem rezultatów na serwer powinna zajmować się osobna aplikacja. Serwer obsługiwałby agregację wyników, mógłby mieć webowy interfejs do ich prezentacji.
0 komentarze:
Prześlij komentarz