Se vc ver o byte code gerado pelo compilador, vc ver que não faz
diferença nenhum se usar o final ou não.
public int test(final Vector v)
e
public int test(Vector v)
geram bytecode igual. O compilador so fara otimalizaçao se fizer tipo:
public int test(final int i){
final int j = 2;
return i + j;
}
Ae o bytecode gerado dá uma linha só.
sven
Mister M wrote:
>
> _________________________________________________________________________
> Get Your Private, Free E-mail from MSN Hotmail at http://www.hotmail.com.
>
> ------------------------------------------------------------------------
>
> Subject:
>
> Re: [java-list] Re: final em lista de argumentos
> From:
>
> "Mister M" <[EMAIL PROTECTED]>
> Date:
>
> Fri, 23 Mar 2001 17:23:09 -0000
> To:
>
> [EMAIL PROTECTED]
>
>
> A ideia q eu tinha eh q este final iria resultar + ou - em declarar um
> ponteiro const em C, o q aumenta a performance. Algo como:
>
> public int fazXFinal(Vector * const v)
>
> mas precisaria de uma resposta embasada (tb fiz testes e no 1.2, usando 2
> mains diferentes, parece q a performance foi levemente superior, mas criei
> varios Vectors ao inves de varios itens....)
>
> Estou acostumado a usar final para declarar metodos e variaveis automaticas
> e sempre ajudou na performance (em 95% dos casos...) O problema eh este
> final estranhissimo em linha de argumentos q parece nao ter um
> comportamento
> definido.
>
> Alguem tem uma explicacao com provas?
>
> P.s.: valeu!!!!!
>
> []'s
> Michael Nascimento Santos
> Analista/Consultor
> CPM Sistemas - www.cpm.com.br
>
>> From: "Leonardo Souza Mario Bueno" <[EMAIL PROTECTED]>
>> Reply-To: [EMAIL PROTECTED]
>> To: <[EMAIL PROTECTED]>
>> Subject: [java-list] Re: final em lista de argumentos
>> Date: Fri, 23 Mar 2001 11:57:27 -0300
>>
>> Não posso afirmar com certeza, mas fiz o teste abaixo e a diferença
>> não foi
>> lá
>> grandes coisas.. pra falar a verdade, usando final foi até mais lento na
>> maioria das
>> vezes. Tentei inverter a ordem do teste (primeiro sem final ) e o
>> resultado
>> não se
>> alterou.
>>
>> Usei a Java HotSpot(TM) Client VM (build 1.3.0_01, mixed mode) para rodar
>> os testes.
>> Acredito que a otimização varie de acordo com o tipo efabricante da
>> JVM que
>> você
>> estiver usando.
>>
>> Eu geralmente uso final somente quando quero usar um argumento de
>> método em
>> uma inner
>> class anonima... fora isto praticamente nunca uso. Acho que só vale a
>> pena
>> usar se
>> você desenvolver aplicações matemáticas ou intensivas no uso de CPU.
>>
>> import java.util.*;
>>
>> public class FinalTest {
>>
>> public int fazX(Vector v) {
>> int sum = 0;
>> for (int i = 0; i < v.size(); i++) {
>> sum += ((Integer)v.get(i)).intValue();
>> }
>> return sum;
>> }
>>
>> public int fazXFinal(final Vector v) {
>> int sum = 0;
>> for (int i = 0; i < v.size(); i++) {
>> sum += ((Integer)v.get(i)).intValue();
>> }
>> return sum;
>> }
>>
>> public static void main(String args[]) {
>>
>> Vector data = new Vector(1000000);
>> for (int i = 0; i < 1000000; i++) {
>> data.add(new Integer(i));
>> }
>>
>> FinalTest test = new FinalTest();
>>
>> long inicio = System.currentTimeMillis();
>> for (int i = 0; i < 10; i++) {
>> test.fazXFinal(data);
>> }
>> long fim = System.currentTimeMillis();
>> System.out.println("Tempo usando final: "+ (fim-inicio) +"ms");
>> System.gc();
>> inicio = System.currentTimeMillis();
>> for (int i = 0; i < 10; i++) {
>> test.fazX(data);
>> }
>> fim = System.currentTimeMillis();
>> System.out.println("Tempo sem usar final: "+ (fim-inicio) +"ms");
>> }
>>
>> }
>>
>> ....................................................
>> Leonardo Souza Mario Bueno
>> itera Informática
>> Voice, Wireless & Web Solutions
>> [EMAIL PROTECTED]
>> Phone: 55 27 337 0317
>> Cell: 55 27 9971 1375
>> Visit our website at:
>> http://www.itera.com.br
>> ....................................................
>>
>> ----- Original Message -----
>> From: "Mister M" <[EMAIL PROTECTED]>
>> To: <[EMAIL PROTECTED]>
>> Sent: Thursday, March 22, 2001 10:34 AM
>> Subject: final em lista de argumentos
>>
>>
>> > Ola pessoal,
>> >
>> > Alguem saberia me afirmar com certeza se o uso de final na lista de
>> > argumentos melhora a performance? Por exemplo, eu sei que em:
>> >
>> > public void fazX() {
>> > final Vector v = new Vector();
>> > ...
>> > }
>> >
>> > pode vir realmente a permitir otimizacoes do compilador. Mas e:
>> >
>> > public void fazX(final Vector v) {
>> > ...
>> > }
>> >
>> > serah q melhora a performance???
>> > Tks anyway!
>> >
>> > []'s
>> >
>> > Michael Nascimento Santos
>> > Analista/Consultor
>> > CPM Sistemas - www.cpm.com.br
>> >
>> >
>> _________________________________________________________________________
>> > Get Your Private, Free E-mail from MSN Hotmail at
>> http://www.hotmail.com.
>> >
>> >
>>
>>
>>
>> ------------------------------ LISTA SOUJAVA ----------------------------
>> http://www.soujava.org.br - Sociedade de Usuários Java da Sucesu-SP
>> dúvidas mais comuns: http://www.soujava.org.br/faq.htm
>> regras da lista: http://www.soujava.org.br/regras.htm
>> para sair da lista: envie email para [EMAIL PROTECTED]
>> -------------------------------------------------------------------------
>>
> _________________________________________________________________________
> Get Your Private, Free E-mail from MSN Hotmail at http://www.hotmail.com.
>
>
>
>
> ------------------------------------------------------------------------
>
> ------------------------------ LISTA SOUJAVA ----------------------------
> http://www.soujava.org.br - Sociedade de Usuários Java da Sucesu-SP
> dúvidas mais comuns: http://www.soujava.org.br/faq.htm
> regras da lista: http://www.soujava.org.br/regras.htm
> para sair da lista: envie email para [EMAIL PROTECTED]
> -------------------------------------------------------------------------
> Re: [java-list] Re: final em lista de argumentos.eml
>
> Content-Type:
>
> message/rfc822
>
>
> ------------------------------------------------------------------------
> attachment.txt
>
> Content-Type:
>
> text/plain
> Content-Encoding:
>
> Quoted-printable
------------------------------ LISTA SOUJAVA ----------------------------
http://www.soujava.org.br - Sociedade de Usuários Java da Sucesu-SP
dúvidas mais comuns: http://www.soujava.org.br/faq.htm
regras da lista: http://www.soujava.org.br/regras.htm
para sair da lista: envie email para [EMAIL PROTECTED]
-------------------------------------------------------------------------