Come posso essere più veloce nel risolvere i problemi di prestazioni delle applicazioni [chiuso]

-2

Mentre mi iscrivo e di solito lavoro in agili postazioni di lavoro e credo che abbia standard ragionevoli, spesso trovo i problemi di prestazioni difficili nel "calore della battaglia", e posso rimandare o non iniziare subito come le funzioni standard.

Nonostante le conoscenze generali sulle prestazioni continuino da un po 'di tempo, mi piacerebbe sapere cosa posso fare per iniziare a correggere e arrivare a soluzioni correlate alle prestazioni prima.

    
posta Crowie 09.10.2015 - 17:59
fonte

2 risposte

3

La tua strategia generale durante lo sviluppo iniziale dovrebbe essere quella di comprendere algoritmi e strutture dati abbastanza bene da evitare di scrivere codice che ha un rendimento scarso in base alla progettazione.

Ad esempio, un loop annidato triplo con 100 iterazioni in ogni livello può sembrare benigno, ma questo è 1 milione di iterazioni totali e se qualcosa sta accadendo in quel ciclo interno che richiede una quantità significativa di tempo, allora ci sarà un problema di prestazioni.

  1. Scegli saggiamente le tue strutture dati. Se hai bisogno della ricerca O (n log n), una normale lista collegata non la taglierà.

  2. Misura sempre per primo. Gli sviluppatori di software sono notoriamente pessimi nel dire quanto bene il codice sta per essere eseguito semplicemente guardandolo.

  3. Ottimizza solo quando avrai un guadagno significativo in termini di prestazioni. Dove questo accade non sarà sempre ovvio.

  4. Quando possibile, ottimizza in seguito. Ma non mancare di trarre vantaggio da quelle prime decisioni di progettazione che assicureranno che il tuo codice funzioni in modo adeguato.

Ulteriori letture
Back to Basics , dove Joel Spolsky descrive " Schlemiel the Painter Algorithm. "

    
risposta data 09.10.2015 - 18:39
fonte
2

Smetti di imbrogliare. stai facendo più lavoro per te stesso e in effetti stai mettendo a rischio il tuo lavoro.

Non lavorare sui "problemi" delle prestazioni che non sono problemi riconosciuti. E come corollario, l'azienda ti concederà del tempo durante il tuo normale lavoro per affrontare i problemi di prestazioni riconosciuti .

  • Se ritieni che le prestazioni correnti di un'applicazione o di una funzione non siano sufficienti, influiscano su altri sistemi o costituiscano un fattore determinante per costi elevati dell'hardware o dell'hosting, registrali come bug / richiesta e lascia che le parti interessate e il proprietario del prodotto decidano quando / se dovresti passare del tempo.
  • Se c'è un serio problema di prestazioni nell'ambito di un'attività / storia attualmente assegnata che impedirebbe che funzioni, a quel punto non è necessariamente un problema di "prestazioni"; è un problema "la caratteristica non è ancora utilizzabile". Fai ciò che deve essere fatto per completare la funzione utilizzando "best practice".

Qualcosa al di fuori di questi due motivi è extracurricolare. Deve essere fatto sul tuo tempo e dovresti essere davvero sicuro che le tue ottimizzazioni non introducano bug.

Ma è davvero meglio evitare di fare un lavoro che la compagnia non approva esplicitamente ... per non dover spiegare come stavi "solo cercando di imparare qualcosa" venerdì dopo ore e abbia perso per sbaglio un mucchio di dati dei clienti o qualcosa del genere.

    
risposta data 09.10.2015 - 20:55
fonte

Leggi altre domande sui tag