Dúvida sobre getter e tempo

4 respostas
mfteixeira_

Olá pessoal, estou desenvolvendo um projeto de pesquisa para a faculdade, este projeto pela sua natureza já é lenta a sua execução, cerca de 20 segundo.
Inicialmente eu fiz o projeto com todos o códigos fonte dentro de um único pacote porém para ficar “mais bonito” eu separei em pacotes e etc.
Com isso o acesso a variáveis de outros pacotes teve que ser feito através de seus getters, coisa que a galera já manja. A partir desse momento
o tempo de execução pulou de 20 segundo para cerca de 100 segundos.

A minha dúvida é: esse acesso pelos getters aumenta tanto assim o tempo de execução?

4 Respostas

DavidUser

Sim, o uso de getters e setters pode trazer um grade impacto quando chamados em cascata e/ou quando dentro de loops.

ViniGodoy

Não era para ser tanto. Para ter certeza do que está ocorrendo, rode o programa num profiler. Provavelmente durante a refatoração você cometeu algum erro.

ViniGodoy

O Java provavelmente fará inline desses getters e setters assim que ele identificar o hotspot.

E

http://www.oracle.com/technetwork/java/javase/tech/vmoptions-jsp-140102.html ->
-XX:+UseFastAccessorMethods Use optimized versions of GetField.
-XX:+AggressiveOpts Turn on point performance compiler optimizations that are expected to be default in upcoming releases. (Introduced in 5.0 update 6.)
-XX:+UseFastEmptyMethods Use fast empty methods

Criado 25 de fevereiro de 2013
Ultima resposta 26 de fev. de 2013
Respostas 4
Participantes 4