gcj [suite de:] Re: Dans certains domaines, et avec une programmation pas trop degeux, Java EST performant
1 réponse
google
Salut Jean-Marc,
Ton test a un certain nombre de problemes.
a) 0.9999999 est vu comme 1.
b) C++ long est equiv a Java int
c) et surtout pas d'exploitation du resultat
J'ai donc modifie et le resultat est que C++, C++ opt, Java, Java opt
et GCJ 3.3.1 ont les memes performances (ce qui n'est pas surprenant
sur un tel test).
Cordialement, Guillaume
// Java
public final class MesurePerf {
public static void main(String[] args) {
final int nbStep = 100000000;
long tCPU = System.currentTimeMillis();
double t = 1.;
final double r = 0.9;
for ( int i = 0; i < nbStep; i++ ) {
t = t * r;
}
tCPU = - tCPU + System.currentTimeMillis();
System.out.println(nbStep + " multiplications en " +
tCPU + " millisecondes. T="+t);
}
}
// C++
long currentTimeMillis() {
clock_t t = clock();
return (long)t;
}
int main( int argc, char** argv ) {
const long nbStep = 100000000;
long tCPU = currentTimeMillis();
double t = 1.;
const double r = 0.9;
for ( long i = 0; i < nbStep; i++ ) {
t = t * r;
}
tCPU = ( - tCPU + currentTimeMillis() ) /
( CLOCKS_PER_SEC/1000 );
cout << nbStep << " multiplications en " <<
tCPU << " millisecondes. T=" << t << endl;
cout.flush();
}