Uno sportello unico per buone pratiche di codifica e suggerimenti sulle prestazioni? [chiuso]

5

Anche se questa potrebbe essere una domanda molto soggettiva, mi chiedevo se ci sia un posto (o molti posti) sul web in cui si può leggere un buon codice e suggerimenti sulle prestazioni per diverse lingue e come possono essere paragonati ad altri?

Ad esempio in AS3 è più veloce moltiplicare piuttosto che dividere, è lo stesso per JS? Quali altri suggerimenti ci sono per rendere veramente veloce il nostro codice? E dove sono questi suggerimenti?

    
posta Ahmed Nuaman 08.11.2011 - 11:44
fonte

4 risposte

4

La vera domanda che dovresti porci prima è: "Dovrei già pensare alle prestazioni?"

Di solito dovresti preoccuparti solo delle prestazioni una volta che hai riscontrato problemi di prestazioni. Ecco una delle mie citazioni preferite:

It is easier to optimize correct code than to correct optimized code. - Bill Harlan

Per problemi di prestazioni causati da algoritmi inefficienti (o discussioni hobbiste irrilevanti per un progetto reale), sei meglio qui ai programmatori. Per problemi di prestazioni specifici della lingua, è meglio fare clic su Stack Overflow .

E per rispondere alla tua domanda attuale: Se esiste un sito che elenca statistiche sulle prestazioni per ogni lingua (caratteristiche di confronto), come lo utilizzeresti? Sceglieresti una lingua rispetto all'altra perché fa chiamate virtuali più veloci?

    
risposta data 08.11.2011 - 14:47
fonte
2

Penso che questo sito web i.e Programmers.StackExchange sia fondamentalmente rivolto a questo tipo di problemi e solo a domande. Ecco un estratto dalla pagina Domande frequenti : -

Programmers — Stack Exchange is a site for professional programmers who are interested in getting expert answers on conceptual questions about software development. If you have a question about…

  • algorithm and data structure concepts
  • design patterns
  • developer testing
  • development methodologies
  • freelancing and business concerns
  • quality assurance
  • software architecture
  • software engineering
  • software licensing
    
risposta data 08.11.2011 - 13:37
fonte
1

In base alla mancanza di risposte effettive, potresti voler costruire il sito che stavi cercando. È abbastanza facile fare i semplici confronti sul rendimento che hai descritto e inserirli in un blog. Se vuoi che gli altri siano in grado di fornire input, potresti incoraggiare Stack Exchange ad aggiungere un sito performace.StackExchange.com, oppure potresti creare tu stesso un sito simile.

    
risposta data 08.11.2011 - 19:14
fonte
0

Stai ottenendo ottime risposte qui. I forum stack * sono un'ottima fonte di informazioni.

Sebbene ogni lingua abbia trucchi per le prestazioni, la chiave per ottenere buone prestazioni è la semplicità del design. Quindi, dopo il software è in esecuzione (non quando si sta codificando) gestire le prestazioni. È improduttivo andare a guardare il codice dell'occhio e indovinare se dovresti usare il trucco X nella posizione Y. Lascia che il programma in esecuzione ti dica cosa aggiustare. (Lo sanno tutti, ma usano ancora il metodo della mira pronta al fuoco.) Se impari questa tecnica per la diagnosi delle prestazioni, lo troverai utile, come molti altri.

Fondamentalmente, interrompi il programma a caso più volte, e ogni volta capisci in dettaglio cosa sta facendo. Non sfiorare. Comprendi cosa sta facendo e perché.

Se vedi che sta facendo qualcosa per due volte, non importa come lo descrivi , questa attività richiede molto tempo. Prima lo vedi, più è significativo.

Tecnicamente, se alcune attività consumano frazione p di tempo, il numero medio di campioni necessari prima di vederlo due volte è 2 / p . Quindi se p è del 20%, in media ci vorranno 10 campioni per vederlo due volte. (Tecnicamente, questo deriva dalla distribuzione binomiale negativa, dove se una moneta ha equità p , il numero di code che si otterranno prima delle teste x è, in media, x (1-p) / p ).

Il punto di questo approccio è che, piuttosto che misurare varie cose e sperare di concentrarsi su qualche codice problema, ti mostra il problema in dettagli cristallini, anche se non è localizzato in un particolare pezzo di codice. Può trovare problemi che non puoi trovare in altro modo.

    
risposta data 08.11.2011 - 19:04
fonte

Leggi altre domande sui tag