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