Quanto custa um objeto?

6 respostas
C

pessoal, estou em dúvida quanto ao paradigma O.O. pois um amigo meu sempre pega no meu pé dizendo prá mim não usar muitas classes e tal, dizendo que pode sobrecarregar a memória do servidor, e eu não sei oque dizer pois não entendo isto. A coisa mais simples que precisei fazer foi uma classe com um uma classe interna + uma collection, daí o cara me tesourou.

Por isto gostaria de saber se vcs já encontraram problema deste tipo em algum projeto e também se podem me esclarecer se a qtidade de objeto encapsulados dentro de outro realmente pesa ou não.

6 Respostas

cv1

Bate no seu amigo. Ele eh um tonto. E manda ele ler www.javaperformancetuning.com :mrgreen:

Luca

Olá

Realmente muitos objetos embutidos dentro de outro pode pesar. É como no tempo da programação estruturada onde muitas variáveis também podia pesar.

Mas e quando é bom fazer isto? Ora, sempre que precisar. Há objetos muito complexos que são absolutamente necessários e nisto reside o poder da OO. Esta capacidade de abstração nos permite tratar problemas muito mais complexos do que com as linguagens puramente estruturadas, principalmente sem garbage collector para liberar a memória alocada.

Não tenha medo de escrever classes complexas. Usando-as aprenderá como escrevê-las de forma eficiente e mande seu amigo programar em assembler.

[]s
Luca

T

Não precisa ficar economizando objetos e classes - isso talvez faça diferença em J2ME, não em J2SE/J2EE. Economizar objetos pode fazer algum sentido em C++ onde a alocação de memória é muito lenta; em Java, a alocação é super-rápida.

rodrigousp

Enfim, concordo com todos.

Sim objetos consomem recursos do servidor (nada mais natural).
Mas e dái ???

Primeiro que para vc consguir uma perda em desempenho realmente significativa num servidor moderno, vc terá que se esforçar bastaaaaaaante.

Os maiores ganhos em performance devem-se a escolha de algoritmos bons, e não desta mesquinharia de economizar objetos.

Depois que os objetos valem muito o preço que se paga em recursos (e cada vez mais, com o avanço da tecnologia, tanto compiladores e máquinas virtuais).

Se a abstração não fosse uma boa prática, e realmente a é, ainda estariamos programando em código hexadecimal.


Premature optimization is the root of all evil (or at least most of it) in programming.

“Computer Programming as an Art” _ Donald Knuth
Ratificando…

tiagops

Tambem fiquei com essa duvida um tempo atrás, sobre a performance.

Tive que fazer um sistema em C# no .NET :twisted: pra uma aplicacao em Pocket, e achei que ela ficou um pouco mais pesada do que a anterior que nao era OO.

Mas acho que a organizacao do codigo e a facilidade de manutencao compensam alguns segundos…

louds

Fala que programando em basic pro TK90 ele não vai chegar em lugar algum.

Criado 17 de janeiro de 2005
Ultima resposta 18 de jan. de 2005
Respostas 6
Participantes 7