Pagina 1 di 4 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 31
  1. #1
    Utente di HTML.it L'avatar di /dev/null
    Registrato dal
    May 2004
    Messaggi
    1,936

    [C vs Java] Prestazioni

    Oggi per fare delle prove ho realizzato un programma semplicissimo in C e Java
    Ecco il codice:
    codice:
    C
    #include <stdio.h>
    #include <time.h>
    
    int main ( ) {
            int i;
            time_t now = time ( NULL );
            printf ( ctime ( &now ) );
            for ( i = 0; i < 1000000000; i ++ ) {
            //      if ( ! ( i % 100000000 ) )
            //              printf ( "%d\n", i )
            }
            printf ( "Finito!\n\n" );
            now = time ( NULL );
            printf ( ctime ( &now ) );
            return 0;
    }
    codice:
    Java
    import java.io.*;
    import java.util.*;
    
    class javacnt {
            public static void main (String[] args) {
                    Date d = new Date ( );
                    System.out.println ( d );
                    for (int i=0; i<1000000000; i++) {
                            //if ( ( i % 100000000 ) == 0 )
                            //      System.out.println ( i );
                    }
                    System.out.println ("Fine");
                    d = new Date ( );
                    System.out.println ( d );
            }
    }


    Eseguendoli entrambi mi sono accorto che quello in Java e' leggermente piu' veloce...
    Se invece decommento le due linee commentate vince di netto il C...

    Perche' nel primo caso vince (anche se di pochissimo) il Java?




    PS: I programmi ci hanno messo 11 secondi quello in C e 9 quelli in Java, Ci mettono cosi' tanto perche' nel frattempo (da oggi pomeriggio) sto ricompilando tutto il mio sistema operativo, il processore e' quindi usato al 100% dal compilatore e i due programmi che ho testato ora sono quindi molto rallentati... Faro' delle prove anche quando la ricompilazione sara' terminata...
    Ultima modifica ad opera dell'utente /dev/null il 01-01-0001 alle 00:00

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472

    Re: [C vs Java] Prestazioni

    Originariamente inviato da /dev/null
    Ci mettono cosi' tanto perche' nel frattempo (da oggi pomeriggio) sto ricompilando tutto il mio sistema operativo, il processore e' quindi usato al 100% dal compilatore e i due programmi che ho testato ora sono quindi molto rallentati...
    Forse una prova che sia davvero tangibile andrebbe fatta esclusivamente senza altri programmi in esecuzione, nel limite del possibile.

    Comunque, pubblica i risultati, soprattutto se curiosi.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  3. #3
    Utente di HTML.it L'avatar di /dev/null
    Registrato dal
    May 2004
    Messaggi
    1,936

    Re: Re: [C vs Java] Prestazioni

    Originariamente inviato da alka
    Forse una prova che sia davvero tangibile andrebbe fatta esclusivamente senza altri programmi in esecuzione, nel limite del possibile.

    Comunque, pubblica i risultati, soprattutto se curiosi.
    Ora ha finito di compilare
    Quello in Java ci mette ~3 secondi, quello in C ~4...
    In C ho dichiarato la variabile i register e ci mette 3 secondi anche lui...

    Probabilmente credo che ci impieghino uguale tempo perche' il javac rndee in automatico la variabile register... E il ciclo dovra' leggerlo solo una volta invece che molte...
    Se infatti aggiungo un if dentro il ciclo il C stravince... Batte il Java di ~4 volte...


    Comunque, pubblica i risultati, soprattutto se curiosi.
    Fatto, ma ho messo il codice proprio perche' anche voi proviate


    Ultima modifica ad opera dell'utente /dev/null il 01-01-0001 alle 00:00

  4. #4
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472

    Re: Re: Re: [C vs Java] Prestazioni

    Originariamente inviato da /dev/null
    Fatto, ma ho messo il codice proprio perche' anche voi proviate
    L'avevo immaginato ed hai ragione, solo che non ho voglia di installare un compilatore C sulla mia macchina.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  5. #5
    Utente di HTML.it L'avatar di anx721
    Registrato dal
    Apr 2003
    Messaggi
    2,352
    Ho provato anche sul mio pc, ma eseguendo il cilco for 10 volte per allungare il tempo; sia per java che per c ho rieseguito il test per 3 volte:


    JAVA: 25 secs;

    C: 31 secs;


    Grande JAVA !!!


  6. #6

    Re: [C vs Java] Prestazioni

    Originariamente inviato da /dev/null
    Perche' nel primo caso vince (anche se di pochissimo) il Java?
    spannometricamente, perche` piu` ul linguaggio e` di alto livello, piu` e` grande l'overhead per l'I/O (non sempre vero, ma dovrebbe valere in questo caso).

    Comunque, considerando la presenza di compilatori JIT, ottimizzatori a runtime etc. etc., un'eventuale parita` o persino superiorita` di java sul C, in quanto a pura velocita` di esecuzione non sarebbe soprprendente IMHO.
    Discorso a parte per l'occupazione di memoria, per quello c'e` poco da fare

    PS:
    il tutto IMHO/AFAIK, ovviamente.
    "Qualsiasi esperto ha paura di combattere usando la katana vera. Anch'io. Ma non ignoro la mia paura, riesco ad accettarla, e a metterla da parte accanto a me".

  7. #7
    Utente di HTML.it L'avatar di /dev/null
    Registrato dal
    May 2004
    Messaggi
    1,936

    Re: Re: [C vs Java] Prestazioni

    Originariamente inviato da Ikitt
    spannometricamente, perche` piu` ul linguaggio e` di alto livello, piu` e` grande l'overhead per l'I/O (non sempre vero, ma dovrebbe valere in questo caso).
    Cioe' :master:

    Comunque, considerando la presenza di compilatori JIT, ottimizzatori a runtime etc. etc., un'eventuale parita` o persino superiorita` di java sul C, in quanto a pura velocita` di esecuzione non sarebbe soprprendente IMHO.
    Discorso a parte per l'occupazione di memoria, per quello c'e` poco da fare
    Non mi riesce comprendere...
    Il codice C compilato viene trasformato in linguaggio macchina...
    Quello Java invece viene eseguito da un interprete, i cui comandi vengono eseguiti dalla macchina...
    L'interprete pero' suppongo sia scritto in C/C++ quindi dovrebbe dare le stesse o minori prestazioni di un altro programma scritto in C che fa la stessa cosa dello script che viene interpetato.... Anche perche' la JVM dovra' essere piena di if/switch che di sicuro non velocizzano...
    Probabilmente la JVM e' stata ottimizzata con l'assembler, questo puo' dare qualche vantaggio, ma così tanto? Bhè in effetti soltanto definendo i come register nel programma in C guadagno un sacco...

    PS:
    il tutto IMHO/AFAIK, ovviamente.
    Non so cosa significhi, ma





    Originariamente inviato da anx721
    Ho provato anche sul mio pc, ma eseguendo il cilco for 10 volte per allungare il tempo; sia per java che per c ho rieseguito il test per 3 volte:


    JAVA: 25 secs;

    C: 31 secs;


    Grande JAVA !!!


    Nel programma in C prova a definire la variabile i cosi':
    codice:
    register int i;
    E poi prova ad aggiungere qualcosa all'interno del ciclo del programma in entrambi i linguaggi... Ad esempio
    codice:
    if ( i < 0 ) break;
    E vedrai che il C non ha niente da invidiare al Java (se non la portabilita' )

    Ultima modifica ad opera dell'utente /dev/null il 01-01-0001 alle 00:00

  8. #8
    [OT]
    il tutto IMHO/AFAIK, ovviamente.

    Scusate la piccola deviazione ma anche a me interesserebbe sapere il significato di quanto sopra.Mi è già capitato di scontrarmi con la prima parola e quella volta ho pensato ad un'errore di battitura ma ora mi sembra alquanto improbabile.Grazie del chiarimento in anticipo,ciao.
    [/OT]
    Il centro dell'attenzione non è sempre un buon posto in cui trovarsi

    Mai discutere con uno stupido, la gente potrebbe non capire la differenza. (O. W.)

  9. #9
    Utente di HTML.it L'avatar di anx721
    Registrato dal
    Apr 2003
    Messaggi
    2,352
    Originariamente inviato da unomichisiada
    [OT]



    Scusate la piccola deviazione ma anche a me interesserebbe sapere il significato di quanto sopra.Mi è già capitato di scontrarmi con la prima parola e quella volta ho pensato ad un'errore di battitura ma ora mi sembra alquanto improbabile.Grazie del chiarimento in anticipo,ciao.
    [/OT]
    IMHO = In My Humble Opinion = Secondo la mia umile opinione

    AFAIK = As Far As I Know = Per quanto ne so



  10. #10
    Utente di HTML.it L'avatar di /dev/null
    Registrato dal
    May 2004
    Messaggi
    1,936
    Originariamente inviato da unomichisiada
    [OT]



    Scusate la piccola deviazione ma anche a me interesserebbe sapere il significato di quanto sopra.Mi è già capitato di scontrarmi con la prima parola e quella volta ho pensato ad un'errore di battitura ma ora mi sembra alquanto improbabile.Grazie del chiarimento in anticipo,ciao.
    [/OT]
    Lo usa tanta gente su questo forum
    Pensavo che IMHO fosse l'urlo di Abatantuono in "Attila Flagello Di Dio"... :maLOL:
    Ultima modifica ad opera dell'utente /dev/null il 01-01-0001 alle 00:00

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.