Objeto em arquivo

Quais são as vantagens e desvantagens de guardar os valores dos objetos de um programa em um arquivo em termos de memória e processamento?

Depende. Não dá pra citar vantagens e desvantagens objetivas sem saber o contexto da aplicação, ou seja, a necessidade/requisito a ser atendido.

Sem saber o que você quer fazer com esses dados, só é possível fazer observações genéricas como:

  • se o conteúdo precisa ser lido do disco toda vez que for processado, o processamento fica mais lento (processador fica esperando a leitura do disco);
  • se o conteúdo é usado frequentemente, e não há problema de mantê-lo na memória, a execução fica mais rápida porque o conteúdo está mais rapidamente disponível;
  • manter o conteúdo em disco pode economizar memória, se isso for um problema;
  • ter uma cópia dos dados em disco garante que eles não se perdem por problemas (erro fatal na aplicação, falta de energia na máquina);
  • se há uma transição constante entre memória e disco, isso impacta o desempenho da aplicação;
  • etc

Abraço.

pode crer terraskill. eu imaginei que seriam estes mais ou menos os efeitos.
no caso, eu estou tentando fazer um jogo online. esse jogo depende de armazenamento de dados do jogador no servidor e de uma plataforma leve para o usuário. por isso pelo que eu estou imaginando eu vou precisar que o servidor suporte o processamento pesado e armazene os dados e que a aplicação do usuario apenas receba e envie dados temporários. eu estou correto neste pensamento?

Um jogo online envolve muitas coisas. Mas não entendi por que você veio aqui com uma dúvida referente à objetos em disco ou em memória, sendo que sua dúvida é sobre jogo online.

Supondo que não será via browser, um jogo multiplayer envolve diversas coisas. Mas, basicamente, você teria:

  • uma aplicação local que envia comandos ao servidor e cuida dos conteúdos locais (imagens, por exemplo);
  • um servidor que recebe os comandos, valida, faz o processamento e devolve aos jogadores o resultado desse processamento;

Isso pode ser implementado de várias formas: você pode carregar tudo na memória em ambos os lados, pode carregar tudo no lado cliente mas só uma parte do lado servidor (exemplo: servidor só carrega os dados dos jogadores conectados, não os dados de todos inscritos), ou pode carregar tudo no servidor mas só uma parte do lado cliente (exemplo: num jogo de cartas, o cliente só carrega as imagens das cartas que possui).

Tudo depende da sua necessidade.

Abraço.

com todo o respeito terraskill, eu que não entendo porque você está questionando a minha dúvida. a sua resposta foi simples e me deu a entender que eu estou desenvolvendo o meu aplicativo da maneira correta. eu tive essa dúvida porquê eu sei que em algum momento eu terei que lidar com objetos em arquivo e estou calculando a trajetória que terei que traçar até conclui-lo.
no mais, obrigado pelo esclarecimento. abraço.