/ Forside / Teknologi / Udvikling / Java / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java
#NavnPoint
molokyle 3688
Klaudi 855
strarup 740
Forvirret 660
gøgeungen 500
Teil 373
Stouenberg 360
vnc 360
pmbruun 341
10  mccracken 320
at finde flaske halse i et program
Fra : Kim Schulz


Dato : 24-06-02 11:51

hejsa
jeg sidder med et beregningstungt program (ren konsol program) som jeg
mener burde køre hurtigere end det gør.
Er der en måde hvormed man kan time de enkelte dele af et program uden
at skulle hen og kode debug linjer ind som kalder noget tids gejl hele
tiden - altså en parameter til java eller noget?



--
Kim Schulz - Freelance Development | Normal times may possibly be
www.schulz.dk - En nørds bekendelser | over forever.
www.linuxia.dk - hverdagens små hacks |

 
 
Dennis Thrysøe (24-06-2002)
Kommentar
Fra : Dennis Thrysøe


Dato : 24-06-02 11:55

www.jprobe.com, www.jprofiler.com eller www.optimizeit.com har nogle
glimrende profilerings-værktøjer. Der findes givetvis også mange flere.


-dennis


Kim Schulz wrote:
> hejsa
> jeg sidder med et beregningstungt program (ren konsol program) som jeg
> mener burde køre hurtigere end det gør.
> Er der en måde hvormed man kan time de enkelte dele af et program uden
> at skulle hen og kode debug linjer ind som kalder noget tids gejl hele
> tiden - altså en parameter til java eller noget?
>
>
>


Mikkel Bundgaard (24-06-2002)
Kommentar
Fra : Mikkel Bundgaard


Dato : 24-06-02 12:05

Kim Schulz <kim@schulz.dk> wrote:
> hejsa
> jeg sidder med et beregningstungt program (ren konsol program)
> som jeg mener burde køre hurtigere end det gør.
> Er der en måde hvormed man kan time de enkelte dele af et program
> uden at skulle hen og kode debug linjer ind som kalder noget tids
> gejl hele tiden - altså en parameter til java eller noget?
Jeg har tidligere (for et års tid siden) brugt HPjmeter som
profiler. Den er gratis og kan blandt andet "cumulative execution
times and call counts for all methods in a profiled application" som
vist er det du ønsker.
http://www.hp.com/products1/unix/java/hpjmeter/

Det kræver at du starter din JVM med en speciel parameter (afhænger
af version), som så gør at JVM'en genererer profilingsdata over
applikationen.
--
Mikkel Bundgaard
Student at IT University of Copenhagen
http://officehelp.gone.dk
Codito, Ergo Sum



john doo (24-06-2002)
Kommentar
Fra : john doo


Dato : 24-06-02 13:17


"Kim Schulz" <kim@schulz.dk> wrote in message
news:20020624125048.3ad83120.kim@schulz.dk...
> hejsa
> jeg sidder med et beregningstungt program (ren konsol program) som jeg
> mener burde køre hurtigere end det gør.
> Er der en måde hvormed man kan time de enkelte dele af et program uden
> at skulle hen og kode debug linjer ind som kalder noget tids gejl hele
> tiden - altså en parameter til java eller noget?


Er nu ikke så kompliceret.

Indsæt linie A hvor du vil starte din tid, og linie B hvor tiden skal
stoppe...............

A: long ms = System.currentTimeMillis();
....
....
Det der skal tages tid på
....
....
B: System.out.println("Tid det tog at xxxxxxxx " +
(System.currentTimeMillis() - ms));




Dennis Thrysøe (24-06-2002)
Kommentar
Fra : Dennis Thrysøe


Dato : 24-06-02 13:30

Det er bare ofte slet ikke detaljeret nok til at finde en flaskehals. Og
hvis man har brug for at gøre det på denn måde, vil det tage meget lang
tid at finde frem til hvor tiden bruges.

-dennis


john doo wrote:
> "Kim Schulz" <kim@schulz.dk> wrote in message
> news:20020624125048.3ad83120.kim@schulz.dk...
>
>>hejsa
>>jeg sidder med et beregningstungt program (ren konsol program) som jeg
>>mener burde køre hurtigere end det gør.
>>Er der en måde hvormed man kan time de enkelte dele af et program uden
>>at skulle hen og kode debug linjer ind som kalder noget tids gejl hele
>>tiden - altså en parameter til java eller noget?
>
>
>
> Er nu ikke så kompliceret.
>
> Indsæt linie A hvor du vil starte din tid, og linie B hvor tiden skal
> stoppe...............
>
> A: long ms = System.currentTimeMillis();
> ...
> ...
> Det der skal tages tid på
> ...
> ...
> B: System.out.println("Tid det tog at xxxxxxxx " +
> (System.currentTimeMillis() - ms));
>
>
>


Kim Schulz (24-06-2002)
Kommentar
Fra : Kim Schulz


Dato : 24-06-02 13:29

On Mon, 24 Jun 2002 14:17:26 +0200
[snip]
> Er nu ikke så kompliceret.
>
> Indsæt linie A hvor du vil starte din tid, og linie B hvor tiden skal
> stoppe...............
[snip]

Det er netop dette jeg ville undgå da det måske skal ind 3-400 steder i
koden for at få alt med som skal times.

--
Kim Schulz - Freelance Development | By working faithfully eight
www.schulz.dk - En nørds bekendelser | hours a day, you may
www.linuxia.dk - hverdagens små hacks | eventually get to be boss and

Thorbjoern Ravn Ande~ (24-06-2002)
Kommentar
Fra : Thorbjoern Ravn Ande~


Dato : 24-06-02 13:55

Kim Schulz <kim@schulz.dk> writes:

> Det er netop dette jeg ville undgå da det måske skal ind 3-400 steder i
> koden for at få alt med som skal times.

Det afhænger af Java-version.

På min 1.3.1'er er "java -Xprof" et billigt bud på den ønskede
funktionalitet.

--
Thorbjørn Ravn Andersen
http://homepage.mac.com/ravn

Kim Schulz (24-06-2002)
Kommentar
Fra : Kim Schulz


Dato : 24-06-02 14:13

On Mon, 24 Jun 2002 14:53:05 +0200
"john doo" <1@1.1> wrote:
> > Det er netop dette jeg ville undgå da det måske skal ind 3-400
> > steder i koden for at få alt med som skal times.
>
> Er det nogle utils du selv har lavet du kalder, så kunne du smide tids
> koden der.
>
> Hvis det er forskellige ting du gør hele tiden kan jeg ikke se anden
> udvej, en at smide de to linier ind.
>
> Men vil da gerne høre, hvis du finder noget andet.

jeg kunne klare meget af problemet med -X optionen til java
Der er bl.a. en der timer kald i cpu tid osv.

--
Kim Schulz - Freelance Development | Either I'm dead or my watch
www.schulz.dk - En nørds bekendelser | has stopped. -- Groucho
www.linuxia.dk - hverdagens små hacks | Marx's last words

Povl H. Pedersen (24-06-2002)
Kommentar
Fra : Povl H. Pedersen


Dato : 24-06-02 20:40

In article <20020624125048.3ad83120.kim@schulz.dk>,
Kim Schulz <kim@schulz.dk> wrote:

> hejsa
> jeg sidder med et beregningstungt program (ren konsol program) som jeg
> mener burde køre hurtigere end det gør.
> Er der en måde hvormed man kan time de enkelte dele af et program uden
> at skulle hen og kode debug linjer ind som kalder noget tids gejl hele
> tiden - altså en parameter til java eller noget?

Led efter java profiler på google.

Og husk, hvis du håndoptimerer koden henter du typisk max faktor 2. Hvis
du redesigner kan du hente faktor 2 til faktor 1000.

Lars Dam (25-06-2002)
Kommentar
Fra : Lars Dam


Dato : 25-06-02 05:25

Hej

>Og husk, hvis du håndoptimerer koden henter du typisk max faktor 2. Hvis
>du redesigner kan du hente faktor 2 til faktor 1000.

Så sandt .-) Men har du et link til materiale omhandlende ovenstående?
- bare nysgerrig.

vh. ld

Povl H. Pedersen (25-06-2002)
Kommentar
Fra : Povl H. Pedersen


Dato : 25-06-02 19:45

In article <o1sfhu0inlcqjju4hkito2hk8ql682lev1@4ax.com>,
Lars Dam <larsdamXXspamXXprotectionXX@post2.tele.dk> wrote:

> Hej
>
> >Og husk, hvis du håndoptimerer koden henter du typisk max faktor 2. Hvis
> >du redesigner kan du hente faktor 2 til faktor 1000.
>
> Så sandt .-) Men har du et link til materiale omhandlende ovenstående?
> - bare nysgerrig.

Desværre. Det er bare erfaring der har lært mig, at man skal gå lidt
længere væk, og tænke på en alternativ løsningsmetode. Ligeledes har jeg
også været modstander af udviklere der bare mente at en dobbelt så
hurtig maskine ville løse problemerne. Typisk blev resultatet en
omskrivning af noget kode med en faktor 5-10 i stedet for den begrænsede
hardware faktor 2.

Thorbjoern Ravn Ande~ (25-06-2002)
Kommentar
Fra : Thorbjoern Ravn Ande~


Dato : 25-06-02 22:53

"Povl H. Pedersen" <nospam@home.terminal.dk> writes:

> Desværre. Det er bare erfaring der har lært mig, at man skal gå lidt
> længere væk, og tænke på en alternativ løsningsmetode. Ligeledes har jeg
> også været modstander af udviklere der bare mente at en dobbelt så
> hurtig maskine ville løse problemerne. Typisk blev resultatet en
> omskrivning af noget kode med en faktor 5-10 i stedet for den begrænsede
> hardware faktor 2.

Et vist kendskab til almindelige algoritmer og deres køretid skader
heller ikke.

Det er også tilladt at bruge en profiler til at hitte ud af hvor
flaskehalse ligger så man kan overveje hvad der skal gøres ved dét.
--
Thorbjørn Ravn Andersen
http://homepage.mac.com/ravn

Jan Jonasen (27-06-2002)
Kommentar
Fra : Jan Jonasen


Dato : 27-06-02 19:42

In article <kkwusn3u0s.fsf@mimer.null.dk>, thunderbear@bigfoot.com says...
> Det er også tilladt at bruge en profiler til at hitte ud af hvor
> flaskehalse ligger så man kan overveje hvad der skal gøres ved dét.
>
Meget appropos, er der nogen som har brugt en profiler til EJB'er? Findes
der en, som er relativt nem at komme i gang med?

--
Mvh/re Jan Jonasen
jonasen (at) it (dot) dk

If I wanted culture, I'd eat yogurt.

Mikkel Bundgaard (28-06-2002)
Kommentar
Fra : Mikkel Bundgaard


Dato : 28-06-02 07:04

Jan Jonasen <jonasenREMOVE@THISit.dk> wrote:
> In article <kkwusn3u0s.fsf@mimer.null.dk>,
> thunderbear@bigfoot.com says...
>> Det er også tilladt at bruge en profiler til at hitte ud af hvor
>> flaskehalse ligger så man kan overveje hvad der skal gøres ved
>> dét.
>>
> Meget appropos, er der nogen som har brugt en profiler til
> EJB'er? Findes der en, som er relativt nem at komme i gang med?
Du kan f.eks. bruge OptimizeIt. Den kan blandt andet profile EJB "A
Java(TM) technology-based profiler to improve performance of Java
platform programs such as servlets, EJB(TM) components, JSP(TM)s,
and complex server-based Java method applications."

Du kan downloade en trail udgave fra
http://www.codework.com/optimize/product.html
--
Mikkel Bundgaard
Student at IT University of Copenhagen
http://officehelp.gone.dk
Codito, Ergo Sum



Jan Jonasen (29-06-2002)
Kommentar
Fra : Jan Jonasen


Dato : 29-06-02 15:40

In article <afguak$nqb$1@sunsite.dk>, mikkelbu@teliamail.dk says...
> Du kan f.eks. bruge OptimizeIt. Den kan blandt andet profile EJB "A
> Java(TM) technology-based profiler to improve performance of Java
> platform programs such as servlets, EJB(TM) components, JSP(TM)s,
> and complex server-based Java method applications."
>
> Du kan downloade en trail udgave fra
> http://www.codework.com/optimize/product.html

Takker.

--
Mvh/re Jan Jonasen
jonasen (at) it (dot) dk

If I wanted culture, I'd eat yogurt.

Lars Dam (26-06-2002)
Kommentar
Fra : Lars Dam


Dato : 26-06-02 08:28

On Tue, 25 Jun 2002 20:44:41 +0200, "Povl H. Pedersen"
<nospam@home.terminal.dk> wrote:

>> >Og husk, hvis du håndoptimerer koden henter du typisk max faktor 2. Hvis
>> >du redesigner kan du hente faktor 2 til faktor 1000.
>>
>> Så sandt .-) Men har du et link til materiale omhandlende ovenstående?
>> - bare nysgerrig.
>
>Desværre. Det er bare erfaring der har lært mig, at man skal gå lidt
>længere væk, og tænke på en alternativ løsningsmetode. Ligeledes har jeg
>også været modstander af udviklere der bare mente at en dobbelt så
>hurtig maskine ville løse problemerne. Typisk blev resultatet en
>omskrivning af noget kode med en faktor 5-10 i stedet for den begrænsede
>hardware faktor 2.

Det er også min erfaring; det kunne dog have været interessant om der
havde været noget literatur omkring emnet.

vh. ld


Søg
Reklame
Statistik
Spørgsmål : 177501
Tips : 31968
Nyheder : 719565
Indlæg : 6408522
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste