To pensando aki, é correto colocar no construtor o objeto = new Objeto(); ?
publci class Teste{
Pessoa pessoa;
public Teste(){
pessoa = new Pessoa();
}
}
eu nao vo criar um objeto toda vez q ela for chamada? isso nao vai carrega o servidor?
To pensando aki, é correto colocar no construtor o objeto = new Objeto(); ?
publci class Teste{
Pessoa pessoa;
public Teste(){
pessoa = new Pessoa();
}
}
eu nao vo criar um objeto toda vez q ela for chamada? isso nao vai carrega o servidor?
[quote=alandiniz]To pensando aki, é correto colocar no construtor o objeto = new Objeto(); ?
publci class Teste{
Pessoa pessoa;
public Teste(){
pessoa = new Pessoa();
}
}
eu nao vo criar um objeto toda vez q ela for chamada? isso nao vai carrega o servidor?[/quote]
Ai é que entra a sua experiência como desenvolvedor.
No meu ponto de vista, a resposta é: depende.
Há vários aspectos a serem analisados, como o tipo de sistema que está sendo desenvolvido, suas propriedades, características, direcionamento entre outros.
Isso pode simplesmente não afetar em nada o teu sistema ou pode ser mais um motivo de estar acumulando memória gratuitamente com criação de objetos que não serão utilizados.
Há situações em que isso será correto e em outras não, ai você precisa parar e pensar se vale ou não a pena fazer isso.
Depende… é necessário ter uma Pessoa instanciada nesse momento?
Depende… Pessoa compõe Teste? para cada Teste terá que ter uma instancia de Pessoa? Se sim então é correto!
Hmm deu pra entender melhor…
existe alguma ferramenta, que eu consigo analisar a memória do servidor, e tipo, qual página que eu acesso que consome mais memória?
para ver gargalo…
tpow eu tenho 3 página, login, cadastro de pessoa, e sei lá, cadastro de produto… cada uma com um jeito diferente de desenvolver… existe como eu testar isso?
sobre o assunto inicial, as vezes eu faço assim:
public class Teste{
Pessoa pessoa = new Pessoa();
public Teste(){
}
}
Dessa forma, é válido para todos os construtores.
Instanciar um objeto carrega quase nada a mais no servidor, mas exceto que você tenha algum método pesado dentro do construtor, mas se você tiver muitas construções em pouco intervalo de tempo, pode afetar um pouco o desempenho. Você pode considerar duas coisas, a primeira, a perda de desempenho que você tem instanciando mais objetos no servidor é significativa (tipo, se você sempre tiver que buscar algo na base de dados, pode ser um pouco mais lento do que deveria). E se você instancia muitos desse objeto.
Agora, sobre o acesso de memória, conheço só o jhat http://download.oracle.com/javase/6/docs/technotes/tools/share/jhat.html
Exemplo de como se usa: http://www.lshift.net/blog/2006/03/08/java-memory-profiling-with-jmap-and-jhat
[quote=alandiniz]Hmm deu pra entender melhor…
existe alguma ferramenta, que eu consigo analisar a memória do servidor, e tipo, qual página que eu acesso que consome mais memória?
para ver gargalo…
tpow eu tenho 3 página, login, cadastro de pessoa, e sei lá, cadastro de produto… cada uma com um jeito diferente de desenvolver… existe como eu testar isso?[/quote]
Tem um post bem interessante para você ler com calma.
Creio que ele possa esclarecer essa sua dúvida e lhe ser muito útil, assim como a todos nós.
Segue: http://submundojava.com.br/2010/04/18/avaliacao-desempenho-sistemas/
Abraços.
bom vc pode pensar por varios lados.
se for pensar na forma de customizar memoria. o correto seria estanciar o objeto sempre que for necessario.
no caso de se previnir para nao acontecer os nullpointer da vida é mais facil iniciar no construtor pois vc sempre garantirá que sera instaciando o objeto.
depende da situação e a ultilização deste objeto!
no meu ponto de vista