Il cross-over tra progettazione per prestazioni / ottimizzazione pre-matura [duplicato]

0

Mentre progettavo la mia libreria di accesso SQL .Net, ho scoperto che volevo che tutto funzionasse il più velocemente possibile, quindi tendo a guardare i modi più veloci di fare le cose. Questo viene spesso criticato come ottimizzazione pre-matura quando cerco solo il modo più veloce di fare qualcosa.

La mia domanda implica un cross-over tra la progettazione per le prestazioni e l'ottimizzazione pre-matura?

    
posta Stuart Blackler 10.11.2011 - 23:04
fonte

4 risposte

1

Ho trovato che la migliore ottimizzazione del design è trovare il modo più semplice di fare le cose. Costi di complessità in molti modi. È probabile che la maggior parte della tua libreria sia leggermente utilizzata, quindi avere le prestazioni più veloci non sarà fondamentale. Lavorare correttamente è sempre fondamentale e molto più probabile con un design più semplice.

Progettare interfacce piuttosto che un'implementazione particolare. Ciò ti consentirà di sostituire l'implementazione, se necessario. Una volta implementata la libreria, è possibile definire il profilo per vedere se ci sono aree che è possibile ottimizzare.

La progettazione per l'ottimizzazione diventa sempre più difficile e soggetta a errori. Hai davvero bisogno di qualcosa che puoi misurare. Scrivi il codice più semplice che funziona, quindi ottimizza.

    
risposta data 11.11.2011 - 03:13
fonte
0

Penso che il processo migliore sia quello di fare il lavoro di base per il tuo database SQL, in modo che tu possa facilmente renderlo più veloce, ma in realtà non esegui ancora questi passaggi. Configura i tuoi tavoli in modo intelligente e scrivi qualsiasi vista di cui hai bisogno, in modo che l'interazione con i modelli di .NET (presumo che tu stia utilizzando MVC) non cambierà.

Quindi, quando il cliente, il PM o i tester iniziano a lamentarsi delle prestazioni, puoi andare a salvare il giorno con l'ottimizzazione. E mantieni le note (a te stesso, o sul wiki della compagnia) su quali ottimizzazioni puoi fare, mentre ci stai ancora pensando.

    
risposta data 11.11.2011 - 00:17
fonte
0

Precisione in primo luogo, se non altro per costruire una buona serie di test unitari. Ottimizzare all'interno di tale struttura otterrà probabilmente i migliori risultati complessivi.

    
risposta data 11.11.2011 - 03:36
fonte
0

Nel design, concentrati sull'algoritmo e sull'approccio alla risoluzione del problema. In fase di implementazione, concentrati sulle peculiarità del linguaggio che rendono qualcosa di efficiente o inefficiente.

È stato detto molte volte, ma in seguito è molto più difficile modificare un algoritmo cattivo piuttosto che ottimizzare l'implementazione di un algoritmo.

    
risposta data 11.11.2011 - 04:49
fonte

Leggi altre domande sui tag