como determinar os requisitos mínimos de um software [duplicado]

15

Alguns produtores de software (geralmente os comerciais) fornecem requisitos mínimos, alguns exemplos: Skype , Diablo III , Ubuntu- Servidor e OpenOffice .

Eu me pergunto como esses requisitos mínimos são determinados, especialmente RAM, frequência de CPU em geral? Existe uma lógica por trás disso ou é apenas determinado por testar o programa com hardware diferente para descobrir o que seria bom para o usuário final?

Se houver uma lógica para determinar esses parâmetros, por exemplo, como eu poderia preparar esses requisitos para um código C ou JAVA (supondo que ele tenha > 10k linhas)?

    
por Angs 26.07.2013 / 19:30
fonte

4 respostas

1

I wonder how those minimum requirements are determined, especially RAM, CPU frequency in general? Is there a logic behind it or is it just determined by testing the program with different hardware to find out what would be okay for the end user?

Bem, não é possível dar uma resposta definitiva. (Diferentes pessoas, grupos, empresas tendem a ter idéias / abordagens diferentes.)

Mas, em geral, a única maneira que provavelmente funcionará é empírica; ou seja, tente e veja.

  • Instale o software em uma variedade de plataformas suportadas e meça o espaço do disco.

  • Execute 1 em uma variedade de sistemas com várias velocidades de CPU e várias quantidades de memória:

    • Veja se funciona bem (subjetivo).
    • Observe as estatísticas do sistema em busca de sinais de estresse nos sistemas de menor custo.
  • Incorpore feedback de usuários internos e testadores beta externos.

1 - Dependendo da natureza do aplicativo, talvez seja necessário tentar problemas com tamanhos diferentes, conjuntos de dados, números de usuários on-line, qualquer coisa ... até um ponto razoável.

Eu não encontrei um caso em que você pudesse obter recomendações confiáveis de plataforma simplesmente aplicando alguma lógica. No mínimo, você precisa executar alguns testes para calibrar seu "modelo de desempenho".

Mesmo quando há uma correlação entre o tamanho do problema e o desempenho, você geralmente não pode prever com segurança quando vai se deparar com problemas de desempenho relacionados ao dimensionamento ... até acertar os problemas.

    
por 02.08.2013 / 03:44
fonte
1

Há um monte de coisas que você deve se lembrar de especificar ( link ).

Principalmente:

  • Software: plataforma, APIs, drivers etc. Isso é fácil quando você conhece seu código e suas dependências;
  • Hardware:
    • Arquitetura:
    • CPU / memória: tente usar algum perfilador ou medir seu aplicativo em ambientes diferentes usando 'Gerenciador de tarefas' ou 'Monitor de atividades'
    • Armazenamento: e quanto à instalação do seu aplicativo? O que mais é necessário?
    • Vídeo: resolução mínima, gráficos 3D?
    • Periféricos: webcam? etc

Algumas outras recomendações:

  • Não se esqueça de testar seu aplicativo em uso simples e em alto uso. Teste o pior cenário;
  • Depois de encontrar e testar sua aplicação em uma máquina que funciona bem, ajuda muito a definir a especificação mínima. Quer dizer, você não precisa procurar por uma especificação menor;
  • Existem coisas que você pode encontrar em seu idioma / estrutura atual. Ex .: requisitos mínimos da máquina virtual Java + suas necessidades de aplicativos.
por 26.07.2013 / 19:51
fonte
0

A criação de perfil do aplicativo ao executar uma transação / processo de ponta a ponta em máquinas / VMs com configurações diferentes pode ajudar. Isso pode ajudá-lo a ver quanto tempo leva para executar métodos / processos diferentes por tempo de CPU versus número de chamadas, e ajustar o VM / hardware subjacente pode ajudar a ajustá-lo. O Profiler também informará o quanto de memória heap é alocada durante suas execuções. Portanto, para requisitos mínimos de memória, você certamente desejará excedê-los. Principais IDEs Java - NetBeans e Eclipse têm esses.

Para aplicativos da Web, você pode considerar colocá-los em uma ferramenta de carregamento, por exemplo, LoadUI. Usando esses, você poderá comparar estatísticas como o número de acessos em seu aplicativo da Web / tempo em relação ao uso da CPU / uso de memória em seu servidor.

    
por 26.07.2013 / 19:51
fonte
0

Em termos de recursos mensuráveis, como CPU e memória, não há fórmula. Não é possível prever que o software moderno, megalítico e multithreaded, escrito em modernas linguagens "mágicas" em sistemas operacionais modernos e movimentados. Você só precisa executar alguns benchmarks.

Encontre o ponto em que seu software fica quase inutilizável. Em seguida, anote os números um pouco para explicar todos os softwares mal-intencionados que seus usuários instalaram, baixando filmes ilegais e assim por diante em segundo plano ... Bem, ou se você quer apenas garantir que mais usuários experimentem excelente desempenho.

    
por 02.08.2013 / 03:39
fonte

Tags