Ci sono molti studi comparativi e disponibili online quando si tratta delle prestazioni di runtime di applicazioni costruite usando una lingua o un'altra. Alcuni guidati da società, alcuni accademici, altri solo rapporti di esperimenti personali.
Abbiamo anche una buona dose di studi comparativi sugli effetti collaterali di un linguaggio di programmazione e dei suoi strumenti, come:
- tempi di costruzione,
- probabilità di rilevamento di bug post-produzione,
- potere espressivo,
- eccetera...
Tuttavia, recentemente sono stato sempre più sconvolto dal consumo di memoria dei miei programmi più di ogni altra cosa. Ciò potrebbe derivare dal fatto che mentre la Legge di Moore è dalla nostra parte per le prestazioni allo stato puro, siamo arrivati a renderci conto che gli altri colli di bottiglia contano di più. Questo, e non tendo ad aggiornare il mio hardware ogni tanto, e ho un po '"vecchio" (leggi Pentium 4 2005-2006 3,6 GHz con 4 GB di RAM) che al giorno d'oggi sono difficili da usare per applicazioni di grandi dimensioni senza richiedendomi di affrontare grossi problemi per spremerli ogni volta (scelta del sistema operativo, interfaccia utente, ottimizzazione dei servizi e dei demoni, scelta delle applicazioni da utilizzare per un'attività o per un altro ...). Onestamente, a volte accendo top
o procexp
piango alla vista della memoria usata dai programmi più innocenti.
Posso affrontarlo continuando a spingere nella direzione sopra elencata, e essenzialmente cercando di limitare me stesso e i programmi che uso (ho un caro amore per i programmi di cli per questo motivo, immagino), ma non posso fare a meno di pensare che forse stiamo sbagliando.
Strumenti moderni per esigenze moderne
Naturalmente, le lingue di livello superiore sono probabilmente migliori e giustificano il loro peso morto. Alcune scelte progettuali sono state fatte per buone (o presumibilmente ben intenzionate) ragioni al momento, in molte toolchain. Librerie condivise, modelli di memoria, pre-processori, sistemi di tipo, ecc ... Ma alcuni potrebbero essere più praticabili di altri con il nostro hardware moderno, e sarei curioso di leggere alcuni studi seri sull'argomento.
Quindi, la mia domanda è: esiste un ciondolo per il Benchmarks Game e altri che si concentrano su un confronto del consumo di memoria di runtime di base delle lingue?
E ancora di più, ci sono alcuni studi che fanno riferimento a questo parametro con altri parametri (simile a quello che ha fatto questo articolo , ad esempio, per altri criteri, basato anche sul gioco dei benchmark )?
How much memory consumption makes you weep?
30 MB per una scheda Chrome inattiva senza estensioni, 100 MB per CCC di ATI, anche 11 MB per un plug-in googletalk inattivo o 23 MB per un driver di stampante inattivo. Queste cose e molte altre ancora. L'esempio di Chrome è un po 'fuori dal parco in quanto è un esempio più complesso, ma gli altri mi sorprendono già abbastanza.