esta opção nem sempre otimiza, se otimizasse sempre não haveria nenhum
motivo para que não fosse chamada sempre quando se utilizasse o javac...

Luiz Fernando Corrêa
_____________________________
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
----- Original Message -----
From: Sergio Oliveira Jr. <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Thursday, May 03, 2001 12:36 PM
Subject: Re: [java-list] Engraçado : QuickSort em Java & Optimalizacão em
Java


> Java tem dessas coisas...
>
> O javac tem uma opção -O que otimiza o bytecode. Já tentou isso ???
>
> []'s
>
> Sergio
>
>
> >From: Sven van ´t Veer <[EMAIL PROTECTED]>
> >Reply-To: [EMAIL PROTECTED]
> >To: [EMAIL PROTECTED]
> >Subject: [java-list] Engraçado : QuickSort em Java & Optimalizacão em
Java
> >Date: Thu, 03 May 2001 09:30:57 -0300
> >
> >Em relação de QuickSort, mandei uma modificação do metodo swap ontem:
> >  private void swap(int a[], int i, int j){
> >   a[i] ^= a[j];
> >   a[j] ^= a[i];
> >   a[i] ^= a[j];
> >  }
> >em vez de:
> >  private void swap(int a[], int i, int j){
> >   int T = a[i];
> >   a[i] = a[j];
> >   a[j] = T;
> >  }
> >
> >O primeiro exemplo em C/C++ é muito mais rapido que o segundo (em
> >assembler são 6 a 8 operações a menos). Ai fez um teste em Java e o
> >resultado é exatamente o oposto, quase o dobro de linhas em byecode.
> >
> >Veja abaixo: (swaptemp utiliza a variavel temporaria T)
> >private void swaptemp(int a[], int i, int j)
> >   {
> >   //    0    0:aload_1
> >   //    1    1:iload_2
> >   //    2    2:iaload
> >   //    3    3:istore          4
> >   //    4    5:aload_1
> >   //    5    6:iload_2
> >   //    6    7:aload_1
> >   //    7    8:iload_3
> >   //    8    9:iaload
> >   //    9   10:iastore
> >   //   10   11:aload_1
> >   //   11   12:iload_3
> >   //   12   13:iload           4
> >   //   13   15:iastore
> >   //   14   16:return
> >   }
> >
> >   private void swap(int a[], int i, int j)
> >   {
> >   //    0    0:aload_1
> >   //    1    1:iload_2
> >   //    2    2:dup2
> >   //    3    3:iaload
> >   //    4    4:aload_1
> >   //    5    5:iload_3
> >   //    6    6:iaload
> >   //    7    7:ixor
> >   //    8    8:iastore
> >   //    9    9:aload_1
> >   //   10   10:iload_3
> >   //   11   11:dup2
> >   //   12   12:iaload
> >   //   13   13:aload_1
> >   //   14   14:iload_2
> >   //   15   15:iaload
> >   //   16   16:ixor
> >   //   17   17:iastore
> >   //   18   18:aload_1
> >   //   19   19:iload_2
> >   //   20   20:dup2
> >   //   21   21:iaload
> >   //   22   22:aload_1
> >   //   23   23:iload_3
> >   //   24   24:iaload
> >   //   25   25:ixor
> >   //   26   26:iastore
> >   //   27   27:return
> >   }
> >}
> >
> >com este resultado na mão fize um terceiro teste:
> >  private void swap2(int a[], int i, int j){
> >   a[i] = a[i] ^ a[j];
> >   a[j] = a[j] ^ a[i];
> >   a[i] = a[i] ^ a[j];
> >  }
> >
> >Isso é igual a :
> >  private void swap(int a[], int i, int j){
> >   a[i] ^= a[j];
> >   a[j] ^= a[i];
> >   a[i] ^= a[j];
> >  }
> >e porém deveria gerar os mesmos bytecodes, mas o resultado é pior ainda:
> >private void swap2(int a[], int i, int j)
> >   {
> >   //    0    0:aload_1
> >   //    1    1:iload_2
> >   //    2    2:aload_1
> >   //    3    3:iload_2
> >   //    4    4:iaload
> >   //    5    5:aload_1
> >   //    6    6:iload_3
> >   //    7    7:iaload
> >   //    8    8:ixor
> >   //    9    9:iastore
> >   //   10   10:aload_1
> >   //   11   11:iload_3
> >   //   12   12:aload_1
> >   //   13   13:iload_3
> >   //   14   14:iaload
> >   //   15   15:aload_1
> >   //   16   16:iload_2
> >   //   17   17:iaload
> >   //   18   18:ixor
> >   //   19   19:iastore
> >   //   20   20:aload_1
> >   //   21   21:iload_2
> >   //   22   22:aload_1
> >   //   23   23:iload_2
> >   //   24   24:iaload
> >   //   25   25:aload_1
> >   //   26   26:iload_3
> >   //   27   27:iaload
> >   //   28   28:ixor
> >   //   29   29:iastore
> >   //   30   30:return
> >   }
> >
> >Será que java não pode fazer otimalizações ??
> >
> >sven
> >
> >
> >------------------------------ 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]
> -------------------------------------------------------------------------


------------------------------ 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] 
-------------------------------------------------------------------------

Reply via email to