Re: Java vs C++ speed (IO & Sorting)
On Thu, 20 Mar 2008 08:41:51 -0600, Jerry Coffin <jcoffin@taeus.com>
wrote:
#include <fstream>
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
#include <ctime>
#include <iterator>
#include <set>
// the main modification is here
#ifdef CSTDIO
#include "cstdio.h"
namespace s = JVC;
#else
namespace s = std;
#endif
// I've also gotten rid of the "using namespace std;" and explicitly
// qualified the names below.
//
int main() {
typedef std::multiset<std::string> mss;
mss buf;
std::string linBuf;
s::ifstream inFile("bible.txt");
clock_t start=clock();
while(s::getline(inFile,linBuf)) buf.insert(buf.end(), linBuf)
;
s::ofstream outFile("output.txt");
std::copy(buf.begin(),buf.end(),
s::ostream_iterator<std::string>(outFile,"\n"));
clock_t endt=clock();
std::cout <<"Time for reading, sorting, writing: " <<
double(endt-start)/CLOCKS_PER_SEC * 1000 << " ms\n";
return 0;
}
Cut and pasted above to IOSort.cpp. Didn't do anything...
C:\>cl IOSort.cpp /O2
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 15.00.21022.08
for 80x86
Copyright (C) Microsoft Corporation. All rights reserved.
IOSort.cpp
C:\Program Files\Microsoft Visual Studio 9.0\VC\INCLUDE\xlocale(342) :
warning C
4530: C++ exception handler used, but unwind semantics are not
enabled. Specify
/EHsc
Microsoft (R) Incremental Linker Version 9.00.21022.08
Copyright (C) Microsoft Corporation. All rights reserved.
C:\>IOSort
Time for reading, sorting, writing: 328 ms
C:\>IOSort
Time for reading, sorting, writing: 328 ms
C:\>IOSort
Time for reading, sorting, writing: 312 ms
C:\>IOSort
Time for reading, sorting, writing: 328 ms
C:\>IOSort
Time for reading, sorting, writing: 312 ms
C:\>IOSort
Time for reading, sorting, writing: 312 ms
C:\>IOSort
Time for reading, sorting, writing: 328 ms
That's same I got berfore. Chaging the file bible2.txt (43 meg file)
C:\>IOSort
Time for reading, sorting, writing: 6938 ms
C:\>IOSort
Time for reading, sorting, writing: 3812 ms
C:\>IOSort
Time for reading, sorting, writing: 3828 ms
C:\>IOSort
Time for reading, sorting, writing: 4250 ms
C:\>IOSort
Time for reading, sorting, writing: 4750 ms
No improvement