Avatar billede trp79 Nybegynder
27. oktober 2005 - 10:44 Der er 5 kommentarer og
2 løsninger

Profiling. Ideer til hvordan og hvor der skal profiles.

Hejsa
Jeg har lavet et udkast til min egen profiling pakke, så jeg kan se hvor i min klasser, der bliver brugt mest tid(og evt. ram, cpu kraft).

Jeg skal bruge den pakke på en JVM med begrænset funktionalitet, så jeg kan altså ikke bruge allerede eksisterende pakke.

Som det er nu har jeg det således at pakken kan tælle hvor mange gange en metode bliver kaldt og hvor mange millisekunder, der bliver bliver brugt ialt i hver metode.

Så her kommer spg. 1:
hvad kunne det ellers være interessant at måle på?

Men som det er lavet nu så skal jeg i de metoder jeg vil måle på kalde en profile.start() når metoden starter, og en profile.pause() når metoden slutter(eller før der returneres noget). Det syntes jeg ikke er særligt henhigstmæssigt. Det ville istedet være rart, hvis man kunne lave det sådan at når en klasse implementerer min profiler klasse, så sørger den selv for at overvåge klassen.

Så her kommer spg. 2:
er det muligt? og i så fald, hvordan bærer man sig ad med sådan noget?

og lige til et spg. 3:
Griber jeg det helt forkert an? i såfald, hvordan ville du så selv gøre det?
Avatar billede dsj Nybegynder
27. oktober 2005 - 10:55 #1
Måske det vil være mere interessant at måle hvor mange nanosekunder der bliver brugt i hver metode - ofte tager en metode nemlig mindre end et millisekund, mens Windows XP kun kan måle i omtrent hele 10 ms. Fra Java 1.5 kan måle nanosekunder med System.nanoTime().

For inspiration til funktionalitet, kunne du tage et kig på den fremragende profilerings-suite, OptimizeIt, fra Borland: http://www.borland.com/us/products/optimizeit/
Avatar billede arne_v Ekspert
27. oktober 2005 - 11:43 #2
Hvis det kan køre på din JVM så synes jeg at du skal kigge på AspectJ !

Deri kan du lave et aspect som gør at der kaldes en metode ved enter og exit
af alle dine metoder uden at du skal rette i din kode. Du oversætter det med aspectj
compilereren og askeptet når du vil trace og med den almindelige compiler (uden
aspektet) når du bare vil køre det normalt.
Avatar billede trp79 Nybegynder
29. oktober 2005 - 19:08 #3
Nej det er en meget begrænset JVM, så jeg kan ikke bruge nogle færdig-pakker, men jeres henvisninger er helt klart til inspiration, så hvis i vil smide et svar hver især vil det være super.
Avatar billede trp79 Nybegynder
29. oktober 2005 - 19:08 #4
Hov, glemte helt at sige tak for hjælpen!

God weekend, mvh
Torben
Avatar billede arne_v Ekspert
29. oktober 2005 - 19:19 #5
hvis den kan køre din kode - kan den så ikke køre AspectJ runtime ?

det er åben source så du kan om nødvenigt hente den og compile selv

----

og svar
Avatar billede trp79 Nybegynder
02. november 2005 - 12:34 #6
Det må jeg lige prøve at se nærmere på Arne. Biblioteket indeholder fx ikke en del simple typer som double. Og profileren skulle jo helst kunne køre på det embeddede system og ikke kun i en evt. simulator.

dsj smider du ikke også lige et svar?
Avatar billede dsj Nybegynder
02. november 2005 - 18:08 #7
Jo, svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester