velocità linguaggi 4


Abbiamo testato un semplice ciclo in diversi linguaggi(interpretati e compilati), senza considerare le velocità di compilazione i tempi(sotto linux) sono stati i seguenti:
php : 0.344
php usando gli oggetti : 0.372
c : 0.120
c++ : 0.340
java : 1.968
python : 0.744
perl : 0.288

mentre le velocità di compilazione sono state le seguenti:
c = 0.236
c++ = 0.743
java = 1.444

a scopo informativo vengono allegati i vari programmi utilizzati :
php :

#!/usr/bin/php
<?php
for($i=0;$i<100000;$i++)
	print("ciao\n");
?>

php ad oggetti :

#!/usr/bin/php
<?php
class prova{
	public function __construct(){
		for($i=0;$i<100000;$i++)
			print("ciao\n");
	}
}
$pp = new prova();
?>

c :

#include<stdio.h>
int main(){
	int i;
	for(i=0;i<100000;i++)
		printf("ciao\n");
}

c++ :

#include <iostream>
class prova
{
public:
	prova();
};	

prova::prova()
{
	for(int i=0;i<100000;i++)
		std::cout << "ciao" << std::endl; 
}

int main(){
	prova pp;
}

java :

public class test
{
	public static void main(String[] args)
	{
		int i;
		for(i = 0; i < 100000;i++)
			System.out.println("ciao");
	}
	
}

python :

#! /usr/bin/env python

for i in range(100000):
	print "ciao"

perl:

#!/usr/bin/perl
for($i=0;$i<100000;$i++) {
   print "ciao\n";
}

Ciò che risulta da questi test è che, come c’era da aspettarsi, il miglior linguaggio è il c, dato che il programma compilato è simile ad un programma scritto direttamente in assembler, in modo ottimizzato.

Ma ciò che è interessante notare è che compilato non vuol dire per forza più veloce, infatti il perl è più veloce del c++. Il php normale eguaglia il c++, anche se usato ad oggeti(per un confronto reale) è un po’ più lento; c’è anche da considerare che il php non ha usato ottimizzatori. solo il python, tra i linguaggi interpretati, è molto più lento del c++.

Infine come peggior linguaggio c’è il java che nonostante la sua pseudo-compilazione ha ottenuto cattivi tempi, funziona bene solo nelle macchine sun dove è presente l’interperetatore hardware.

P.S. naturalmente il php è stato eseguito come applicazione di shell

CC BY-SA 4.0 velocità linguaggi by cardinale claudio is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.


Lascia un commento

4 commenti su “velocità linguaggi