| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 01/03/2005 11:24:53
|
rodrigo.achilles
JavaGuru
![[Avatar]](/images/avatar/0e189c35adab992d274c294586143ec9.png)
Membro desde: 18/11/2004 20:43:04
Mensagens: 214
Localização: Rio de Janeiro
Offline
|
Olá pessoal,
Estou fazendo um estudo de complexidade de algoritimos.
Estou querendo saber como faço para ligar um relógio e desligá-lo assim que a função acabar seu trabalho.
Em C, faço assim, eu já testei e está funcionando, agora em Java estou me enrolando um pouco:
clock_t start, end;
double cpu_time_used;
start = clock();
... /* A função */
end = clock();
cpu_time_used = ((double) (end - start)) / CLOCKS_PER_SEC;
Alguém me ajuda. Por Favor!
|
-----------------------------------------------------------------------
Java é sinistro!
Att.
Rodrigo Achilles Pereira |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 01/03/2005 11:30:55
|
furetz
Entusiasta Java
![[Avatar]](/images/avatar/b7d35509ab19d0cd2256a219de0fe0ff.jpg)
Membro desde: 19/11/2004 21:32:22
Mensagens: 20
Offline
|
Se vc soh quiser saber qnto tempo demora, o que vc pode fazer, acho que é mais simples, é no inicio da função colocar:
e qndo acabar vc pode fazer:
Aí vc tem no fim o tempo em ms.
|
" Mataro meu passarinho!!!!
...Pega eles Tupi!!!!!!! "
 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 01/03/2005 11:31:18
|
pcalcado
Moderador
![[Avatar]](/images/avatar/110eec23201d80e40d0c4a48954e2ff5.jpg)
Membro desde: 08/03/2004 17:19:35
Mensagens: 5174
Localização: Sydney - Australia
Offline
|
Você pdoe utilizar System e pegar os milissegundos quando o método inicia e quando ele termina, subtraindo e tal.
Se for mais de um método ou quiser medir um sistema grande, considere AOP.
[]s
|
Phillip Calçado "Shoes"
http://fragmental.tw/
http://blog.fragmental.com.br/
"It is unfortunate that much of what is called 'object-oriented programming today is simply old style programming with fancier constructs." - Alan Kay |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 01/03/2005 11:36:31
|
rodrigo.achilles
JavaGuru
![[Avatar]](/images/avatar/0e189c35adab992d274c294586143ec9.png)
Membro desde: 18/11/2004 20:43:04
Mensagens: 214
Localização: Rio de Janeiro
Offline
|
Valeu galera, funcionou.
Eu estava fazendo com o método getTime().
Mais me retornava o mesmo tempo no final.
Obrigadão.
Abraços
|
-----------------------------------------------------------------------
Java é sinistro!
Att.
Rodrigo Achilles Pereira |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 01/03/2005 13:15:16
|
thingol
Moderador
Membro desde: 29/07/2004 16:10:13
Mensagens: 17539
Offline
|
Se milissegundos não são suficientes para você, e se você está usando o Java 5.0, você pode usar System.nanoTime().
Desvantagens -
a) Embora System.nanoTime lhe retorne um valor em nanossegundos (bilionésimos de segundos!), na prática o valor cronometrado depende do hardware e do sistema operacional (que normalmente não consegue medir um tempo inferior a 1 ms). OK, ok, eu sei que o Pentium III e IV conseguem medir um tempo que é 1 clock (ou seja, para um Pentium IV 3.8 GHz isso seria 0,2632 ns) mas não sei se o sistema operacional acessa esse contador do Pentium III e IV.
b) Se com System.currentTimeMillis você tem de repetir o seu teste várias vezes e tirar uma média, porque por vários motivos (JIT compilation, garbage collection, memory swapping, disk caching, deoptimization etc) o tempo nunca se repete, imagine com System.nanoTime.
This message was edited 1 time. Last update was at 01/03/2005 13:16:22
|
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 01/03/2005 13:46:16
|
danieldestro
Moderador
![[Avatar]](/images/avatar/a5bfc9e07964f8dddeb95fc584cd965d.png)
Membro desde: 04/09/2002 17:26:16
Mensagens: 6667
Localização: São Paulo / Catanduva
Offline
|
thingol, to cada vez mais impressionado com você, cara. O que você não sabe? Nas 24 horas do dia, você faz algo fora estudar?
|
gotjava?
Doe sangue
What You See Is What You Get!
Apostilas de Java grátis!
RefsCALL - Bandeira Eletrônica para Árbitro de Futebol |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 01/03/2005 14:25:16
|
rodrigo.achilles
JavaGuru
![[Avatar]](/images/avatar/0e189c35adab992d274c294586143ec9.png)
Membro desde: 18/11/2004 20:43:04
Mensagens: 214
Localização: Rio de Janeiro
Offline
|
Entendi thingol,
Boa explicação, valeu, mesmo dependendo dessas coisas todas, eu consegui com o Milisegundos, vou usar o nanosegundos e ver o que vai dar.
Abraços
|
-----------------------------------------------------------------------
Java é sinistro!
Att.
Rodrigo Achilles Pereira |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 01/03/2005 14:39:31
|
louds
Moderador
![[Avatar]](/images/avatar/1e48c4420b7073bc11916c6c1de226bb.jpg)
Membro desde: 29/04/2003 23:09:15
Mensagens: 4061
Localização: São Paulo
Offline
|
Se for mais de uma função, use um profiler que os resultados vão ser bem mais precisos. java -Xprof ou java -Xrunhprof já quebram um galho legal.
|
http://www.kumpera.net/blog/
http://www.mono-project.com/
"Each individual should work for himself. People will not sacrifice themselves for the company. They come to work at the company to enjoy themselves."
Soichiro Honda |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 01/03/2005 14:52:43
|
Filipe Sabella
GUJ Expert
Membro desde: 12/03/2003 11:25:57
Mensagens: 4679
Offline
|
Se estiver usando Java 1.4, pode baixar o J3D e utilizar a classe Timer
http://javadesktop.org/java3d/javadoc/1.3.2-beta2/com/sun/j3d/utils/timer/J3DTimer.html
|
Former LIPE. |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 01/03/2005 15:03:18
|
louds
Moderador
![[Avatar]](/images/avatar/1e48c4420b7073bc11916c6c1de226bb.jpg)
Membro desde: 29/04/2003 23:09:15
Mensagens: 4061
Localização: São Paulo
Offline
|
Lipe, olhei essa classe e me veio uma dúvida enorme.
Lá fala que o método não é thread-safe, ate ai tudo bem. Mas o método não ser reentrante, ai fiquei bolado.
Desde quando java tem problemas de reentrancia para métodos que não chamam outros diretamente? Ou alguem seria estúpido o suficiente para usar JNI em um signal handler?
|
http://www.kumpera.net/blog/
http://www.mono-project.com/
"Each individual should work for himself. People will not sacrifice themselves for the company. They come to work at the company to enjoy themselves."
Soichiro Honda |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 01/03/2005 15:05:53
|
rodrigo.achilles
JavaGuru
![[Avatar]](/images/avatar/0e189c35adab992d274c294586143ec9.png)
Membro desde: 18/11/2004 20:43:04
Mensagens: 214
Localização: Rio de Janeiro
Offline
|
Valeu galera por tudo.
Eu estou usando o Java 1.5
Mas com o System.nanoTime() eu consigo numa boa e consigo ter essa precisão, embora, dependa do hardware, entre outros. Pois maior precisão seria se eu só tivesse rodando apenas esse processo.
Mas só pra comparar duas funções está ótimo.
Valeu mesmo!
|
-----------------------------------------------------------------------
Java é sinistro!
Att.
Rodrigo Achilles Pereira |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 01/03/2005 15:08:59
|
louds
Moderador
![[Avatar]](/images/avatar/1e48c4420b7073bc11916c6c1de226bb.jpg)
Membro desde: 29/04/2003 23:09:15
Mensagens: 4061
Localização: São Paulo
Offline
|
Para aumentar a precisão não esqueça de usar -Xcomp e -Xbatch
This message was edited 1 time. Last update was at 01/03/2005 15:09:41
|
http://www.kumpera.net/blog/
http://www.mono-project.com/
"Each individual should work for himself. People will not sacrifice themselves for the company. They come to work at the company to enjoy themselves."
Soichiro Honda |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 01/03/2005 15:17:42
|
rodrigo.achilles
JavaGuru
![[Avatar]](/images/avatar/0e189c35adab992d274c294586143ec9.png)
Membro desde: 18/11/2004 20:43:04
Mensagens: 214
Localização: Rio de Janeiro
Offline
|
Valeu louds, vou colocar!
Abraços e obrigado!
|
-----------------------------------------------------------------------
Java é sinistro!
Att.
Rodrigo Achilles Pereira |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/04/2006 17:22:33
|
klarq
JavaChild
![[Avatar]](/images/avatar/d1359f9934ee5a75ed441ffce412a0a1.jpg)
Membro desde: 14/02/2005 11:27:07
Mensagens: 124
Offline
|
E para aplicações web?
Será que o tomcat tem essa medição?
|
|
|
 |
|
|