Eclipse 3.1M4 e StringBuilder

6 respostas
F

Com o Eclipse M4 com suporte integral ao java 1.5, fiz esse testezinho de desempenho das classes String, StringBuffer e a nova StringBuilder.

Experimentem rodar com 50.000 a 100.000 iterações para ver a lerdeza da String.

A diferença de desempenho entre a StringBuilder e a StringBuffer é considerável também, coisa de 10% a 25%.

import java.util.GregorianCalendar;

public class StringTeste {
	
	public static void main(String[] args) {
		StringBuilder builder = new StringBuilder();
		StringBuffer buffer = new StringBuffer();
		String string = new String();
		int loop = 10000;
		long inicio;
		long fim;
		inicio = new GregorianCalendar().getTimeInMillis();
		for(int i = 0; i < loop; i++) {
			string += "oi";
		}
		fim = new GregorianCalendar().getTimeInMillis();
		System.out.println((fim - inicio));
		inicio = new GregorianCalendar().getTimeInMillis();
		for(int i = 0; i < loop; i++) {
			buffer.append("oi");
		}
		fim = new GregorianCalendar().getTimeInMillis();
		System.out.println((fim - inicio));
		inicio = new GregorianCalendar().getTimeInMillis();
		for(int i = 0; i < loop; i++) {
			builder.append("oi");
		}		
		fim = new GregorianCalendar().getTimeInMillis();
		System.out.println((fim - inicio));
	}
}

6 Respostas

M

ja saiu o eclise 3.0.1 release :slight_smile:
[]s

F

Na verdade, eu estou falando do Eclipse 3.1M4. Só de dar uma mexida hoje já achei alguns bugs, mas está bem agradável de usar. :twisted:

M

entao eu que devo estar boiando
vale a pena lembrar onde esta rodando, o computador q pode nao aguentar :slight_smile:
[]s

F

Pera aí… A Classe StringBuilder é igual à StringBuffer na implementação?

E qual foi a mais rápida? a StringBuilder ou a StringBuffer?

E pra terminar se a StringBuilder é igual à StringBuffer pq eles simplesmente não melhorarm a classe que já existia? Tinha que criar uma classe nova? PQ?

Fiquei com essas dúvidas, no mais…

Valeu pela dica brother…

té +

F

A StringBuilder e a StringBuffer são iguizinhas, com os mesmos métodos, porém a StringBuilder não é sincronizada, portanto mais rápida. :razz:

Foi feito justamente isso, melhoraram a StringBuffer, já que a sincronização é desnecessária na maior parte dos casos.

De modo geral, só se deve usar Strings com poucas iterações, a partir do momento que se tem que concatenar muitas Strings começa a haver impacto na performance. A solução é usar a StringBuffer e a partir do Java 1.5, a nova StringBuilder. :cool:

F

Valeu pela dica…

Criado 19 de dezembro de 2004
Ultima resposta 20 de dez. de 2004
Respostas 6
Participantes 3