#include <iostream>
#include <stdlib.h>
int main()
{
system("date +%M.%S.%N");
return 0;
}
W boost znalazłem dwie, które nadawały by się do moich potrzeb. Niestety w żadną nie zagłębiałem się dokładnie. Pierwsza to Boost.Data_Time, druga to Boost.Chrono. Tutaj będzie tylko o pierwszej.Biblioteka, pozwala na pobieranie czasu, obliczanie czasu trwania i przesunięć w czasie. Wszystko to dla różnych systemów kalendarzowych np. UTC, kalendarz gregoriański. Pozwala też zapisywać i odczytywać datę w różnych formatach - z tego co czytałem, bo nie miałem czasu testować.
W tym programie pobieram trzykrotnie lokalny czas (UTC) z dokładnością co do milisekund (linijki 14, 20 i 30). Następny krok to obliczenie czasu trwania (linijki 21 i 31) inicjalizowania listy, oraz jej przeszukiwania.
#include <list>
#include <iostream>
#include <boost/foreach.hpp>
#include <boost/assign/list_of.hpp>
#include <boost/date_time/posix_time/posix_time.hpp>
using namespace std;
using namespace boost::assign;
int main()
{
using namespace boost::posix_time;
ptime time1 = microsec_clock::local_time();
cout << "Start at: " << time1 << endl;
const int size = 400500;
list<int> l = list_of(1337).repeat(size, 1337);
ptime time2 = microsec_clock::local_time();
time_duration td_init = time2 - time1;
cout << "Memory Initialization: " << td_init << endl;
int result = 0;
BOOST_FOREACH(int value, l) {
if (value > result)
result = value;
}
ptime time3 = microsec_clock::local_time();
time_duration td_find = time3 - time2;
cout << "Searching: " << td_find << endl;
return result;
}
WynikStart at: 2012-Oct-14 17:13:36.716994 Memory Initialization: 00:00:00.125376 Searching: 00:00:00.021398
Brak komentarzy:
Prześlij komentarz