Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "Serializer.h"
- Serializer::Serializer( ){
- cout << "Initializing tests..." << endl;
- rows = 260032;
- cols = 44;
- v1d.resize(rows*cols,3.14159);
- binfile = "test.bin";
- cout << "Total elems: " << rows*cols << endl;
- cout << "Test binfile: " << binfile << endl;
- }
- float Serializer::write_binary( ) {
- start_time = clock();
- ofstream ambin_ofp("test.bin", ofstream::binary);
- ambin_ofp.write((char*)&rows, sizeof(size_t) );
- ambin_ofp.write((char*)&cols, sizeof(size_t) );
- ambin_ofp.write((char*)&v1d[0], rows*cols*sizeof(float));
- ambin_ofp.close();
- end_time = clock();
- return (float)(end_time-start_time) / CLOCKS_PER_SEC;
- }
- float Serializer::iter_1d( ){
- start_time = clock();
- float tmp = 0.0;
- for( int i=0; i<rows; i++ ){
- vector<float>::const_iterator v_iter = v1d.begin()+i*cols;
- for( int j=0; j<cols; j++ )
- tmp += *(v_iter++);
- }
- end_time = clock();
- return (float)(end_time-start_time)/CLOCKS_PER_SEC;
- }
- float Serializer::read_1d_binary( ){
- start_time = clock();
- ifstream ambin_ifp( binfile, ifstream::binary );
- ambin_ifp.read((char*)&rows, sizeof(size_t) );
- ambin_ifp.read((char*)&cols, sizeof(size_t) );
- v1d.resize(rows*cols);
- ambin_ifp.read((char*)&v1d[0], rows*cols*sizeof(float) );
- end_time = clock();
- ambin_ifp.close();
- return (float)(end_time-start_time) / CLOCKS_PER_SEC;
- }
- float Serializer::iter_2d( ){
- start_time = clock();
- float tmp = 0.0;
- for( int i=0; i<rows; i++ ){
- vector<float>::const_iterator v_iter = v2d[i].begin();
- for( int j=0; j<cols; j++ )
- tmp += *(v_iter++);
- }
- end_time = clock();
- return (float)(end_time-start_time)/CLOCKS_PER_SEC;
- }
- float Serializer::read_2d_binary( ){
- v2d.clear();
- start_time = clock();
- ifstream ambin_ifp( binfile, ifstream::binary );
- ambin_ifp.read((char*)&rows, sizeof(size_t));
- ambin_ifp.read((char*)&cols, sizeof(size_t));
- vector<float> tmp;
- tmp.resize(cols);
- for( int i=0; i<rows; i++ ){
- ambin_ifp.read((char*)&tmp[0], cols*sizeof(float));
- v2d.push_back(tmp);
- }
- end_time = clock();
- ambin_ifp.close();
- return (float)(end_time-start_time) / CLOCKS_PER_SEC;
- }
- int Serializer::elems_2d( ){
- int elems = 0;
- for( int i=0; i<v2d.size(); i++ )
- for( int j=0; j<v2d[i].size(); j++ )
- elems++;
- return elems;
- }
- int Serializer::elems_1d( ){
- return v1d.size();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement