come determinare i requisiti minimi di un software [duplicato]

15

Alcuni produttori di software (comunemente quelli commerciali) forniscono i requisiti minimi, alcuni esempi: Skype , Diablo III , Ubuntu- Server e OpenOffice .

Mi chiedo come vengono determinati quei requisiti minimi, in particolare la RAM, la frequenza della CPU in generale? C'è una logica dietro di esso o è determinato solo testando il programma con hardware diverso per scoprire cosa sarebbe andato bene per l'utente finale?

Se esiste una logica per determinare tali parametri, ad esempio, come potrei preparare tali requisiti per un codice C o JAVA (supponendo che abbia > 10k line)?

    
posta Angs 26.07.2013 - 19:30
fonte

4 risposte

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?

Bene, non è possibile dare una risposta definitiva. (È probabile che persone, gruppi, società diverse abbiano idee / approcci diversi).

Ma in generale, l'unico modo in cui è probabile che funzioni è empirico; provalo e vedi.

  • Installa il software su una vasta gamma di piattaforme supportate e misura lo spazio su disco.

  • Esegui 1 su una gamma di sistemi con varie velocità della CPU e varie quantità di memoria:

    • Verifica se funziona in modo accettabile (soggettivo).
    • Guarda le statistiche di sistema per i segnali di stress sui sistemi di fascia bassa.
  • Incorpora il feedback degli utenti interni e dei beta tester esterni.

1 - A seconda della natura dell'applicazione, potrebbe essere necessario provare con problemi di dimensioni diverse, set di dati, numeri di utenti online, qualunque cosa ... fino a un punto che sia ragionevole.

Non mi sono imbattuto in un caso in cui è possibile ottenere consigli affidabili sulla piattaforma semplicemente applicando una logica. Come minimo è necessario eseguire alcuni test per calibrare il "modello di prestazioni".

Anche quando esiste una correlazione tra dimensioni del problema e prestazioni, di solito non è in grado di prevedere in modo affidabile quando si verificheranno problemi di prestazioni relativi alla scalabilità ... fino a colpire i problemi.

    
risposta data 02.08.2013 - 03:44
fonte
1

C'è un sacco di cose che dovresti ricordare di specificare ( link ).

Principalmente:

  • Software: piattaforma, API, driver, ecc. Questo è facile una volta che conosci il tuo codice e le tue dipendenze;
  • Hardware:
    • Architettura:
    • CPU / memoria: prova a utilizzare un po 'di profiler o a misurare la tua applicazione in diversi ambienti usando "Task manager" o "Monitoraggio attività"
    • Archiviazione: cosa mi dici della tua installazione dell'app? Che altro è necessario?
    • Video: risoluzione minima, grafica 3d?
    • Periferiche: webcam? etc

Alcuni altri consigli:

  • Non dimenticare di testare la tua applicazione in modo semplice e con un utilizzo elevato. Prova lo scenario peggiore;
  • Una volta che hai trovato e testato la tua applicazione su una macchina che funziona bene, aiuta molto a definire le specifiche minime. Voglio dire, non hai bisogno di cercare una specifica più piccola;
  • Ci sono cose che puoi trovare nella tua lingua / struttura corrente. Ad es .: requisiti minimi della macchina virtuale java + le esigenze della tua app.
risposta data 26.07.2013 - 19:51
fonte
0

La profilazione dell'applicazione quando si esegue una transazione / processo end-to-end su macchine / VM con impostazioni diverse può aiutare. Ciò potrebbe aiutarti a capire quanto tempo occorre per eseguire diversi metodi / processi in base alla durata della CPU rispetto al numero di richiami e la regolazione della VM / hardware sottostante può aiutarti a modificarla. Profiler ti dirà anche quanta memoria heap è allocata durante le tue esecuzioni. Quindi, per requisiti minimi di memoria, sicuramente vorrai eccedere quelli. Principali IDE Java - Netbeans ed Eclipse hanno quelli.

Per le applicazioni web potresti prendere in considerazione di posizionarle sotto uno strumento di caricamento, ad es. LoadUI. Usando quelli che saresti in grado di confrontare statistiche come il numero di accessi sulla tua app web / tempo vs utilizzo della CPU / utilizzo della memoria sul tuo server.

    
risposta data 26.07.2013 - 19:51
fonte
0

In termini di risorse misurabili come CPU e memoria, non esiste una formula. È possibile prevedere un moderno software megalitico multithread scritto in linguaggi "magici" moderni su sistemi operativi moderni e occupati. Devi solo eseguire alcuni benchmark.

Trova il punto in cui il tuo software diventa quasi inutilizzabile. Quindi, calcola leggermente i numeri per tenere conto di tutti i software maliziosi installati dagli utenti, scaricare filmati illegali e così via in background ... Bene, o se vuoi solo garantire più esperienza ai tuoi utenti ottimo prestazioni.

    
risposta data 02.08.2013 - 03:39
fonte

Leggi altre domande sui tag