Go to the documentation of this file.00001 #include "Utilities/Timing/interface/PentiumTimer.h"
00002 #include <iostream>
00003 #include <fstream>
00004 #include <string>
00005 #include <algorithm>
00006 #include <iterator>
00007
00008
00009 PentiumTime::OneTick::~OneTick(){}
00010
00011 PentiumTime::OneTick::OneTick() {
00012 #ifdef __APPLE__
00013
00014 abort();
00015 #else
00016 std::string input;
00017 {
00018 std::ifstream cpuinfo("/proc/cpuinfo");
00019 cpuinfo.unsetf( std::ios::skipws );
00020 std::istream_iterator<char> sbegin(cpuinfo),send;
00021 copy(sbegin,send,inserter(input,input.end()));
00022 cpuinfo.close();
00023 }
00024 size_t i = input.find("cpu MHz");
00025 if (i==std::string::npos) {
00026 std::cout << "/proc/cpuinfo does not contain cpu speed..." << std::endl;
00027 one = 1.;
00028 return;
00029 }
00030 i = input.find(":",i);
00031 one = 1.e-6/atof(input.substr(i+1,input.find("/n",i)-i).c_str());
00032 #endif
00033 }