Creato da ufo.rob il 24/02/2008

Il blog di uforob

Miscellanea: anime, manga, curiosità, videogiochi, informatica, scienza, tecnologia, notizie, tempo libero, TV...

TWITTER

AREA PERSONALE

 

ARCHIVIO MESSAGGI

 
 << Giugno 2024 >> 
 
LuMaMeGiVeSaDo
 
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
 
 

FACEBOOK

 
 

 

« Scienza, tecnologia e magiaA cosa serve Mac OS X »

QUANTO COSTA NON FARE NIENTE

Post n°227 pubblicato il 25 Marzo 2014 da ufo.rob
 

Non voglio parlare di quelli che per scelta più o meno consapevole non lavorano e del loro costo sulla società, quelli che in giapponese si chiamano hikikomori. Questo articolo indica quante risorse servono con diversi linguaggi per fare un programma che non faccia niente. In realtà il programma testato non fa veramente niente, è un ciclo vuoto infinito. La cosa è leggermente diversa perché con un ciclo vuoto il programma deve ESEGUIRE continuamente un'istruzione di salto, un programma che non facesse niente sarebbe terminato subito e mi sarebbe stato difficile valutare l'occupazione di memoria e CPU.

Java

public class Loop {

    /**
     * @param args
     */
    public static void main(String[] args) {
       
        while(true);

    }

}

Il file jar eseguibile esportato con Eclipse (che quindi include altre classi da JDT) è grande 7986 byte (8KB) e all'avvio occupa tra il 96 e il 100% di CPU e 6,3 MiB di RAM

Python

while True:
    pass

Lo script è un file di testo che occupa solo 18 byte. L'esecuzione occupa tra il 94 e il 100% di CPU e 1,7 MiB di RAM.

C

int main()
{
    while(1);
    return 0;
}

File di 7280 byte. Occupa tra il 98 e il 100% di CPU e 60 KiB di RAM.

C++

Il sorgente è lo stesso di prima compilato con g++ invece di gcc (avrei potuto togliere il return e usare il tipo bool di C++ ma così il confronto è più equo anche se il return è comunque aggiunto dal compilatore, non so invece quanto la compilazione dei bool sia sovrapponibile al metodo spartano del C per cui 0 è falso e tutti gli altri valori sono vero). File di 7282 byte. Il consumo di memoria e di CPU ha oscillato di più (intorno al 98 o 100 % di CPU e ha toccato anche 90, la RAM dopo un po' è scesa da 60 a 56 KiB).

Bash

while true
do
:
done

Tra 96 e 98% e 156 KiB di RAM.

Windows Batch

:s
goto s

File di 10 byte. Tra 1 e 5% di CPU e 1460 KB di RAM

Questo ha la particolarità che in effetti stampa anche l'istruzione "goto s" sulla linea di comando e quindi è molto meno vicino al "non fare niente".

Conclusione

I risultati sono un po' falsati perché per Java, Python, Bash e Windows Batch (insomma tutti tranne C e C++ che sono compilati) risulta sul processo la dimensione di tutto l'ambiente comunque direi che il vincitore è Python che bilancia l'occupazione dei sorgenti e delle risorse runtime. Anche C/C++ però bisogna considerare che i sorgenti devono esser compilati invece il file Python da 18 byte è bell'e che pronto a essere dato in pasto all'interprete senza dover fare prima alcun'altra operazione. Windows Batch è simile, anzi usa meno RAM e il file è più piccolo però è fuori gara perché effettua le stampe (l'effetto è diverso da una finestra con una scritta ferma e un cursore lampeggiante).

Dettagli

Per chi se lo stesse chiedendo tutto questo è nato perché a lavoro dovevo testare uno script che facesse ripartire un programma Java terminato e ho fatto il loop descritto come prova.

Il computer utilizzato ha un processore Intel® Core™2 Duo E6750 (2.66GHz) e 2GB di RAM.

Tutte le prove sono state effettuate con Ubuntu 12.04.4 LTS "precise pangolin" a 32 bit, tranne il Windows batch che è stato provato su Windows XP Professional Service Pack 3 (32 bit) con lo stesso computer

 
 
 
Vai alla Home Page del blog

CERCA IN QUESTO BLOG

  Trova
 

ULTIME VISITE AL BLOG

agm28169Maheoprefazione09karen_71m12ps12cassetta2basilico65anna545unghieviolaAl3x5andr0jonas21marabertowciollo2magar29vmps
 

ULTIMI COMMENTI

internet rincoglionisce il cervello
Inviato da: Corpo_Di_Rosa
il 23/10/2022 alle 17:39
 
Cambiare idea a fronte di situazione logica i.e.: se una...
Inviato da: Elvio Catania
il 13/04/2020 alle 08:58
 
Sorridere. Può illuminare anche la giornata più buia.
Inviato da: cassetta2
il 25/04/2019 alle 16:19
 
Nell'episodio "Il ritorno...
Inviato da: ufo.rob
il 05/04/2016 alle 21:36
 
Hanno ripreso questa cosa anche nell'episodio 18 di...
Inviato da: ufo.rob
il 05/04/2016 alle 21:18
 
 

CHI PUò SCRIVERE SUL BLOG

Solo l'autore può pubblicare messaggi in questo Blog e tutti possono pubblicare commenti.
 
RSS (Really simple syndication) Feed Atom
 
 
 
 

© Italiaonline S.p.A. 2024Direzione e coordinamento di Libero Acquisition S.á r.l.P. IVA 03970540963