X-Git-Url: https://oss.titaniummirror.com/gitweb/?a=blobdiff_plain;f=libstdc%2B%2B-v3%2Ftestsuite%2Fperformance%2F27_io%2Fifstream_extract_float.cc;fp=libstdc%2B%2B-v3%2Ftestsuite%2Fperformance%2F27_io%2Fifstream_extract_float.cc;h=2df70ccd5f4bd0fdb681fe12b6bc64a5b4da618f;hb=6fed43773c9b0ce596dca5686f37ac3fc0fa11c0;hp=0000000000000000000000000000000000000000;hpb=27b11d56b743098deb193d510b337ba22dc52e5c;p=msp430-gcc.git diff --git a/libstdc++-v3/testsuite/performance/27_io/ifstream_extract_float.cc b/libstdc++-v3/testsuite/performance/27_io/ifstream_extract_float.cc new file mode 100644 index 00000000..2df70ccd --- /dev/null +++ b/libstdc++-v3/testsuite/performance/27_io/ifstream_extract_float.cc @@ -0,0 +1,67 @@ +// Copyright (C) 2004, 2009 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 3, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING3. If not see +// . + + +#include +#include +#include + +void test_extraction(int p = 6) +{ + using namespace std; + using namespace __gnu_test; + + const char* filename = "tmp_perf_float.txt"; + const int iterations = 10000000; + + ostringstream oss; + oss << "precision " << p; + + // Construct data. + { + ofstream out(filename); + out.precision(p); + for (int i = 0; i < iterations; ++i) + { + float f = i * 3.14159265358979323846; + out << f << '\n'; + } + } + + { + time_counter time; + resource_counter resource; + + ifstream in(filename); + in.precision(p); + float f; + start_counters(time, resource); + for (int j, i = 0; i < iterations; ++i) + in >> f; + stop_counters(time, resource); + report_performance(__FILE__, oss.str(), time, resource); + } + + unlink(filename); +}; + +int main() +{ + test_extraction(6); + test_extraction(12); + return 0; +}