Minor improvements to performance testing code
git-svn-id: http://svn.code.sf.net/p/utfcpp/code@115 a809a056-fc17-0410-9590-b4f493f8b08e
This commit is contained in:
parent
d75756f201
commit
7fcdf850d9
2 changed files with 11 additions and 4 deletions
|
@ -3,19 +3,20 @@
|
||||||
struct timer {
|
struct timer {
|
||||||
timer(std::ostream& report) : report(report)
|
timer(std::ostream& report) : report(report)
|
||||||
{start = std::clock();}
|
{start = std::clock();}
|
||||||
~timer()
|
|
||||||
|
void print_time()
|
||||||
{
|
{
|
||||||
using namespace std;
|
using namespace std;
|
||||||
end = clock();
|
clock_t now = clock();
|
||||||
unsigned milliseconds = (end - start)*1000 / CLOCKS_PER_SEC;
|
unsigned milliseconds = (now - start)*1000 / CLOCKS_PER_SEC;
|
||||||
report << "Spent " << milliseconds << "ms here\n";
|
report << "Spent " << milliseconds << "ms here\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
std::clock_t start;
|
std::clock_t start;
|
||||||
std::clock_t end;
|
|
||||||
std::ostream& report;
|
std::ostream& report;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
// just to surpress a VC++ 8.0 warning
|
// just to surpress a VC++ 8.0 warning
|
||||||
timer& operator = (const timer&);
|
timer& operator = (const timer&);
|
||||||
|
timer(const timer&);
|
||||||
};
|
};
|
||||||
|
|
|
@ -44,6 +44,7 @@ int main(int argc, char** argv)
|
||||||
cout << "utf8::utf8to16: ";
|
cout << "utf8::utf8to16: ";
|
||||||
timer t(cout);
|
timer t(cout);
|
||||||
utf8::utf8to16(buf, buf + length, utf16buf);
|
utf8::utf8to16(buf, buf + length, utf16buf);
|
||||||
|
t.print_time();
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
|
@ -52,6 +53,7 @@ int main(int argc, char** argv)
|
||||||
cout << "unchecked::utf8to16: ";
|
cout << "unchecked::utf8to16: ";
|
||||||
timer t(cout);
|
timer t(cout);
|
||||||
utf8::unchecked::utf8to16(buf, buf + length, utf16buf);
|
utf8::unchecked::utf8to16(buf, buf + length, utf16buf);
|
||||||
|
t.print_time();
|
||||||
}
|
}
|
||||||
// the UTF-16 result will not be larger than this (I hope :) )
|
// the UTF-16 result will not be larger than this (I hope :) )
|
||||||
wchar_t* utf16iconvbuf = new wchar_t[wlength];
|
wchar_t* utf16iconvbuf = new wchar_t[wlength];
|
||||||
|
@ -63,6 +65,7 @@ int main(int argc, char** argv)
|
||||||
{
|
{
|
||||||
timer t(cout);
|
timer t(cout);
|
||||||
MultiByteToWideChar(CP_UTF8, MB_ERR_INVALID_CHARS, buf, length, utf16iconvbuf, int(wlength));
|
MultiByteToWideChar(CP_UTF8, MB_ERR_INVALID_CHARS, buf, length, utf16iconvbuf, int(wlength));
|
||||||
|
t.print_time();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -81,6 +84,7 @@ int main(int argc, char** argv)
|
||||||
{
|
{
|
||||||
timer t(cout);
|
timer t(cout);
|
||||||
WideCharToMultiByte(CP_UTF8, 0, utf16buf, int(wlength), buf, length, NULL, NULL);
|
WideCharToMultiByte(CP_UTF8, 0, utf16buf, int(wlength), buf, length, NULL, NULL);
|
||||||
|
t.print_time();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -90,6 +94,7 @@ int main(int argc, char** argv)
|
||||||
cout << "unchecked::utf16to8: ";
|
cout << "unchecked::utf16to8: ";
|
||||||
timer t(cout);
|
timer t(cout);
|
||||||
utf8::unchecked::utf16to8(utf16buf, utf16buf + wlength, buf);
|
utf8::unchecked::utf16to8(utf16buf, utf16buf + wlength, buf);
|
||||||
|
t.print_time();
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
|
@ -97,6 +102,7 @@ int main(int argc, char** argv)
|
||||||
cout << "utf16to8: ";
|
cout << "utf16to8: ";
|
||||||
timer t(cout);
|
timer t(cout);
|
||||||
utf8::utf16to8(utf16buf, utf16buf + wlength, buf);
|
utf8::utf16to8(utf16buf, utf16buf + wlength, buf);
|
||||||
|
t.print_time();
|
||||||
}
|
}
|
||||||
|
|
||||||
delete [] buf;
|
delete [] buf;
|
||||||
|
|
Loading…
Add table
Reference in a new issue