cómo determinar los requisitos mínimos de un software [duplicado]

15

Algunos productores de software (generalmente los comerciales) proporcionan requisitos mínimos, algunos ejemplos: Skype , Diablo III , Ubuntu- Servidor y OpenOffice .

Me pregunto cómo se determinan esos requisitos mínimos, especialmente RAM, frecuencia de CPU en general. ¿Hay una lógica detrás de esto o simplemente se determina probando el programa con un hardware diferente para averiguar qué estaría bien para el usuario final?

Si existe una lógica para determinar dichos parámetros, por ejemplo, ¿cómo puedo preparar dichos requisitos para un código C o JAVA (suponiendo que tiene una línea > 10k)?

    
pregunta Angs 26.07.2013 - 19:30
fuente

4 respuestas

1
  

Me pregunto cómo se determinan esos requisitos mínimos, especialmente RAM, frecuencia de CPU en general. ¿Hay una lógica detrás de esto o simplemente se determina probando el programa con un hardware diferente para averiguar qué estaría bien para el usuario final?

Bueno, no es posible dar una respuesta definitiva. (Es probable que diferentes personas, grupos y empresas tengan ideas / enfoques diferentes).

Pero en general, la única forma en que es probable que funcione es empírica; es decir, inténtalo y mira.

  • Instale el software en una variedad de plataformas compatibles y mida el espacio del disco.

  • Ejecútelo 1 en una variedad de sistemas con varias velocidades de CPU y varias cantidades de memoria:

    • Vea si funciona aceptablemente (subjetivo).
    • Observe las estadísticas del sistema para detectar signos de estrés en los sistemas de gama baja.
  • Incorpore los comentarios de los usuarios internos y de los probadores beta externos.

1 - Dependiendo de la naturaleza de la aplicación, es posible que deba probar con diferentes problemas de tamaño, conjuntos de datos, número de usuarios en línea, lo que sea ... hasta un punto que sea razonable.

No he encontrado un caso en el que pueda obtener recomendaciones confiables de la plataforma simplemente aplicando un poco de lógica. Como mínimo, debe ejecutar algunas pruebas para calibrar su "modelo de rendimiento".

Incluso cuando existe una correlación entre el tamaño del problema y el rendimiento, por lo general no puede predecir de manera confiable cuando se encontrará con problemas de rendimiento relacionados con la escala ... hasta que golpea los problemas.

    
respondido por el Stephen C 02.08.2013 - 03:44
fuente
1

Hay un montón de cosas que debes recordar especificar ( enlace ).

Principalmente:

  • Software: plataforma, API, controladores, etc. Esto es fácil una vez que conoce su código y sus dependencias;
  • Hardware:
    • Arquitectura:
    • CPU / memoria: intente usar un generador de perfiles o medir su aplicación en diferentes entornos usando el 'Administrador de tareas' o 'Monitor de actividad'
    • Almacenamiento: ¿Qué pasa con la instalación de tu aplicación? ¿Qué más se necesita?
    • Vídeo: resolución mínima, gráficos en 3D?
    • Periféricos: ¿webcam? etc

Algunas otras recomendaciones:

  • No olvide probar su aplicación en uso simple y en uso alto. Prueba el peor escenario;
  • Una vez que haya encontrado y probado su aplicación en una máquina que funciona bien, es muy útil definir la especificación mínima. Quiero decir, no es necesario buscar una especificación más pequeña;
  • Hay cosas que puedes encontrar en tu lenguaje / marco actual. Por ejemplo, los requisitos mínimos de la máquina virtual Java + las necesidades de su aplicación.
respondido por el Danilo Muñoz 26.07.2013 - 19:51
fuente
0

Perfilar la aplicación cuando se ejecuta una transacción / proceso de extremo a extremo en máquinas / máquinas virtuales con diferentes configuraciones puede ayudar. Eso podría ayudarlo a ver cuánto tiempo lleva ejecutar diferentes métodos / procesos por tiempo de CPU frente al número de invocaciones, y el ajuste de la VM / hardware subyacente puede ayudar a modificarlo. El generador de perfiles también le dirá cuánta memoria de almacenamiento dinámico se asigna durante sus ejecuciones. Por lo tanto, para los requisitos mínimos de memoria, seguramente querrás superar esos. Los principales IDE de java: Netbeans y Eclipse tienen esos.

Para aplicaciones web, podría considerar colocarlas debajo de una herramienta de carga, por ejemplo. LoadUI. Al usarlos, podrá comparar estadísticas como el número de visitas en su aplicación web / tiempo frente al uso de CPU / uso de memoria en su servidor.

    
respondido por el Evgheni Crujcov 26.07.2013 - 19:51
fuente
0

En términos de recursos medibles como CPU y memoria, no hay fórmula. Es imposible predecir . es un software moderno, megalítico y de multiproceso, escrito en lenguajes modernos "mágicos" en sistemas operativos modernos y ocupados.

Encuentre el punto en el que su software se vuelve casi inutilizable. Luego, rellene los números un poco para dar cuenta de todo el software travieso que sus usuarios han instalado, descargando películas ilegales, etc. en segundo plano ... Bueno, o si solo desea asegurarse de que sus usuarios disfruten de más experiencia / em> rendimiento.

    
respondido por el svidgen 02.08.2013 - 03:39
fuente

Lea otras preguntas en las etiquetas