Piszę implementację algorytmu za pomocą Java. Do wersji OS X 10.7 używałem profilu Sharka do profilowania mojej implementacji, która działała raczej ładnie. Jednak nowe Instrumenty nie znajdują już nazw procedur. Próbowałem już uruchomić aplikację java z argumentami VM dla rekina (a mianowicie -agentlib: Shark), ale są one nieznane 10.7 i nie mogłem znaleźć takiego agenta dla instrumentów.Brakujące nazwy procedur JAVA w profilu czasu, instrumentach, OS X
Masz pomysł, jak dołączyć nazwy procedur do nazw symboli (które są niektórymi numerami heksadecymalnymi) w Insturments? Używam Eclipse Indigo, jeśli to robi jakąkolwiek różnicę.
Dzięki!
Edycja: Do tej pory nic się nie zmieniło z OS X Mountain Lion.
Edit # 2: Aktualizacja od dewelopera za pośrednictwem Apple bug reportera (?):
dtrace miał wsparcie dla Java układa w punktach w przeszłości, choć szczerze nie mógł powiedzieć, czy wsparcie został zachowany. Może to być realne obejście tego, co próbujesz zmierzyć - co w innym przypadku nie jest priorytetem dla narzędzi wydajności w tym momencie. Możesz zacząć od skryptu D w /usr/bin/cpu_profiler.d i zmienić go, aby również zebrać plik jstack.
Edycja nr 3: W porządku, po dalszych dyskusjach okazuje się, że sam programista nie wiedział, skąd pochodzi ten skrypt. Co ciekawe, profiler czasu w Instruments i tak nie używa DTrace, więc jedyną opcją jest napisanie własnego skryptu DTrace lub instrumentu.
Masz rację, a ja przepraszam. Nie jestem pewien, skąd wziął się ten skrypt, a kiedy uważnie go obejrzałem, nie ma w nim akcji jstack, więc i tak nie jest to, czego chcesz. Wygląda na to, że jedyną opcją profilowania java, którą mogę zaoferować, jest DTrace. DTrace ma dostawcę profilu i akcję jstack, która zbiera stosy Java. Możesz użyć "agregatów" do określenia najcięższych śladów stosu, a wszystko to działa z linii poleceń. Dokumentacja DTrace jest w większości przechowywana przez firmę Sun i skierowuję Cię do dowolnego samouczka DTrace, ponieważ większość obejmuje dostawcę profilu.
Pomimo tego, co ludzie mówią online, Instruments nie używa DTrace do wszystkiego, w szczególności do profilowania czasu, więc nie mogę zaoferować ci szybkiej poprawki w interfejsie Instruments.
Świetnie, dziękuję. Mam nadzieję, że zostanie to naprawione wkrótce, chociaż błąd istnieje już od jakiegoś czasu. Złożę raport o błędzie. – HdM
Dostałem więc aktualizację od programisty, który brzmi: "W przeszłości dtrace obsługiwał stosy Java w punktach, ale szczerze mówiąc nie mogłem powiedzieć, czy wsparcie zostało utrzymane. dla tego, co próbujesz zmierzyć - co w innym przypadku nie jest priorytetem dla narzędzi wydajnościowych. Możesz zacząć od skryptu D w /usr/bin/cpu_profiler.d i zmienić go, aby również pobrać jstack . " – HdM
Byłbym bardzo zainteresowany, aby wiedzieć, czy coś działa. –