Processamento Celular

Para uma aplicação no celular isso tem MUITA diferença:

StringItem somarValor(){
		QuentinhaTO lQuentinhaTO = null;
		String lTexto = null;
		ObjectSet lObj = null;
		int lValor = 0;
		StringItem lQuantidade = null;
		QuentinhaFiltro lQuentinhaFiltro = null;
		
		try {
			lQuentinhaFiltro = new QuentinhaFiltro();
			lQuentinhaFiltro.setMes(new Integer(lListaMeses.getSelectedIndex() + 1));
			lObj = new QuentinhaDAO().obterPorFiltro(lQuentinhaFiltro);
		
			for (int i = 0; i < lObj.size(); i++) {
				lQuentinhaTO = (QuentinhaTO) lObj.get(i);
				lValor = lQuentinhaTO.getValor().intValue();
			}
		
			lTexto = QuentinhaUtil.getMes(lQuentinhaFiltro.getMes()) + lValor;
		
			lQuantidade = new StringItem(null,lTexto);
		
		} catch (Exception e) {
			TratarExcecao(e, "save");
		}
		return lQuantidade;
		
	}

E

StringItem somarValor(){
		
		try {
			QuentinhaFiltro lQuentinhaFiltro = new QuentinhaFiltro();
			lQuentinhaFiltro.setMes(new Integer(lListaMeses.getSelectedIndex() + 1));
			ObjectSet lObj = new QuentinhaDAO().obterPorFiltro(lQuentinhaFiltro);
		        
                        int lValor = 0;
                        QuentinhaTO lQuentinhaTO = null;
			for (int i = 0; i < lObj.size(); i++) {
				lQuentinhaTO = (QuentinhaTO) lObj.get(i);
				lValor = lQuentinhaTO.getValor().intValue();
			}
		
			String lTexto = QuentinhaUtil.getMes(lQuentinhaFiltro.getMes()) + lValor;
			
		} catch (Exception e) {
			TratarExcecao(e, "save");
		}
		return new StringItem(null,lTexto);;
		
	}

Percebam que na segunda vez o código faz o mesmo, mais com menos linhas de processamento.
Em uma aplicação para o celular, isso tem muita diferença?

Obrigado

OBS: Alguém responde aquele meu tópico sobre os JARs do meu projeto. Obrigado again :slight_smile:

o segundo exemplo compila?

vi q ta sendo definido o lTexto dentro do try, e depois é retornado fora do try, neste contexto o lTexto nem sequer é definido…

try { String lTexto = QuentinhaUtil.getMes(lQuentinhaFiltro.getMes()) + lValor; } catch (Exception e) { TratarExcecao(e, "save"); } return new StringItem(null,lTexto);

mas voltando a questão fulcral, a diferença principal q reparei foi menos linhas, o tipo das variaveis passam a ser definidas no contexto em que estao sendo utilizadas.

tanto quanto as duas praticas, devem ter o mesmo desempenho, isto é mais uma questão de “gosto” de cada programador, tu pode calcular o tempo com o System.getTimeInMillis() pegando o seu valor antes e depois do código ser executado e dai tira a tua conclusão, mas neste caso não deve haver diferença.

a única diferança é q, as variaveis definidas fora do try, so ficaram disponiveis para o GC quando a método terminar, e sendo definidas dentro do try, estarão disponiveis para o GC recolher assim que o try terminar, mas isto não influência o tempo de execução neste caso.

se tu nao precisa da variavel fora do try, então não faz sentido defini-la fora do try, defina sempre no contexto em que ela esta sendo usada, se sera usada so dentro do try entao defina dentro do try e não fora.

agora se quer mesmo saber qual a diferença entre:

QuentinhaFiltro lQuentinhaFiltro = null; lQuentinhaFiltro = new QuentinhaFiltro();

e entre:

QuentinhaFiltro lQuentinhaFiltro = new QuentinhaFiltro();

a diferança é q num caso esta em 1 linha e no outro em duas :stuck_out_tongue:

isto vejo mais como uma questão de gosto… e não algo q influencie a performace… mesmo em aplicações mobile…