[Resolvido] Qual tem a melhor performance? Estático ou Dinâmico?

Existe uma aplicação antiga que utiliza diversos métodos estáticos onde não há necessidade.
No estado que a aplicação se encontra daria um bom trabalho remover o ‘static’ de alguns desses métodos.

Mesmo assim gostaria de saber se a diferença de performance seria muito grande? Se vale a pena mudar esses métodos.
Se não souberem responder, como posso fazer um teste de performance? (Em qualquer IDE ou testador - este teste iria ter apenas 2 métodos idênticos sendo um estático o outro não com diversos acessos a eles).

A diferença é tendendo a zero e não é isso que irá deixar seu programa mais rápido.
Veja (e continue) a discussão abaixo.
http://www.guj.com.br/java/279584-muitos-metodos-static-e-bom-ou-ruim

A diferença vai ser insignificante.

Você pode testar colocando um simples System.currentTimeMillis() pra pegar o tempo em milisegundos antes e depois da chamada do seu método:

System.out.println(System.currentTimeMillis());
// metodo estático ou método nao estático sendo chamado aqui no lugar desse comentário!
System.out.println(System.currentTimeMillis());

Você vai ver que o resultado se não for igual para métodos estáticos e não estáticos ali no meio, será muito parecido.

Se você quiser, você pode até aumentar a precisão para nanoseconds, ao invés de milis, com o System.nanoTime(), mas aí já é meio “overkill” ;).

Bem obrigado a todos pelas respostas

Interessante esse post (http://www.guj.com.br/java/279584-muitos-metodos-static-e-bom-ou-ruim). Valeu!

[quote=Adriano Almeida]A diferença vai ser insignificante.

Você pode testar colocando um simples System.currentTimeMillis() pra pegar o tempo em milisegundos antes e depois da chamada do seu método:

System.out.println(System.currentTimeMillis());
// metodo estático ou método nao estático sendo chamado aqui no lugar desse comentário!
System.out.println(System.currentTimeMillis());

Você vai ver que o resultado se não for igual para métodos estáticos e não estáticos ali no meio, será muito parecido.

Se você quiser, você pode até aumentar a precisão para nanoseconds, ao invés de milis, com o System.nanoTime(), mas aí já é meio “overkill” ;).[/quote]

mas olhar o tempo de uma execução, é impreciso mesmo. se fosse ao menos um pouco mais, tipo 1 milhao de vezes.