Quanto custa um objeto?

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.

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

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

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.

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.

[quote]
Premature optimization is the root of all evil (or at least most of it) in programming.[/quote]
“Computer Programming as an Art” _ Donald Knuth
Ratificando…

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…

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