check for invalid parameter, coverity issue 1198843, also reformat source
This commit is contained in:
		
							parent
							
								
									3a1a51ac46
								
							
						
					
					
						commit
						9894f2e053
					
				| @ -48,45 +48,40 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | |||||||
| 
 | 
 | ||||||
| const unsigned number_of_elements = 268435456; | const unsigned number_of_elements = 268435456; | ||||||
| 
 | 
 | ||||||
| struct Statistics { double min, max, med, mean, dev; }; | struct Statistics | ||||||
|  | { | ||||||
|  |     double min, max, med, mean, dev; | ||||||
|  | }; | ||||||
| 
 | 
 | ||||||
| void RunStatistics(std::vector<double> & timings_vector, Statistics & stats) { | void RunStatistics(std::vector<double> &timings_vector, Statistics &stats) | ||||||
|  | { | ||||||
|     std::sort(timings_vector.begin(), timings_vector.end()); |     std::sort(timings_vector.begin(), timings_vector.end()); | ||||||
|     stats.min = timings_vector.front(); |     stats.min = timings_vector.front(); | ||||||
|     stats.max = timings_vector.back(); |     stats.max = timings_vector.back(); | ||||||
|     stats.med = timings_vector[timings_vector.size()/2]; |     stats.med = timings_vector[timings_vector.size() / 2]; | ||||||
|     double primary_sum =    std::accumulate( |     double primary_sum = std::accumulate(timings_vector.begin(), timings_vector.end(), 0.0); | ||||||
|                                 timings_vector.begin(), |  | ||||||
|                                 timings_vector.end(), |  | ||||||
|                                 0.0 |  | ||||||
|                             ); |  | ||||||
|     stats.mean = primary_sum / timings_vector.size(); |     stats.mean = primary_sum / timings_vector.size(); | ||||||
| 
 | 
 | ||||||
|     double primary_sq_sum = std::inner_product( timings_vector.begin(), |     double primary_sq_sum = std::inner_product( | ||||||
|                                 timings_vector.end(), |         timings_vector.begin(), timings_vector.end(), timings_vector.begin(), 0.0); | ||||||
|                                 timings_vector.begin(), |     stats.dev = std::sqrt(primary_sq_sum / timings_vector.size() - (stats.mean * stats.mean)); | ||||||
|                                 0.0 |  | ||||||
|                             ); |  | ||||||
|      stats.dev = std::sqrt( |  | ||||||
|         primary_sq_sum / timings_vector.size() - (stats.mean * stats.mean) |  | ||||||
|     ); |  | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| int main (int argc, char * argv[]) { | int main(int argc, char *argv[]) | ||||||
|  | { | ||||||
|     LogPolicy::GetInstance().Unmute(); |     LogPolicy::GetInstance().Unmute(); | ||||||
| 
 | 
 | ||||||
|         SimpleLogger().Write() << |     SimpleLogger().Write() << "starting up engines, " << g_GIT_DESCRIPTION << ", " | ||||||
|             "starting up engines, " << g_GIT_DESCRIPTION << ", " << |                            << "compiled at " << __DATE__ << ", " __TIME__; | ||||||
|             "compiled at " << __DATE__ << ", " __TIME__; |  | ||||||
| 
 | 
 | ||||||
| #ifdef __FreeBSD__ | #ifdef __FreeBSD__ | ||||||
| 	SimpleLogger().Write() << "Not supported on FreeBSD"; |     SimpleLogger().Write() << "Not supported on FreeBSD"; | ||||||
| 	return 0; |     return 0; | ||||||
| #endif | #endif | ||||||
| 
 | 
 | ||||||
|     if( 1 == argc ) { |     if (1 == argc) | ||||||
|         SimpleLogger().Write(logWARNING) << |     { | ||||||
|             "usage: " << argv[0] << " /path/on/device"; |         SimpleLogger().Write(logWARNING) << "usage: " << argv[0] << " /path/on/device"; | ||||||
|         return -1; |         return -1; | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
| @ -94,119 +89,105 @@ int main (int argc, char * argv[]) { | |||||||
|     test_path /= "osrm.tst"; |     test_path /= "osrm.tst"; | ||||||
|     SimpleLogger().Write(logDEBUG) << "temporary file: " << test_path.string(); |     SimpleLogger().Write(logDEBUG) << "temporary file: " << test_path.string(); | ||||||
| 
 | 
 | ||||||
|     try { |     try | ||||||
|         //create files for testing
 |     { | ||||||
|         if( 2 == argc) { |         // create files for testing
 | ||||||
|             //create file to test
 |         if (2 == argc) | ||||||
|             if( boost::filesystem::exists(test_path) ) { |         { | ||||||
|  |             // create file to test
 | ||||||
|  |             if (boost::filesystem::exists(test_path)) | ||||||
|  |             { | ||||||
|                 throw OSRMException("Data file already exists"); |                 throw OSRMException("Data file already exists"); | ||||||
|             } |             } | ||||||
| 
 | 
 | ||||||
|             double time1, time2; |             double time1, time2; | ||||||
|             int * random_array = new int[number_of_elements]; |             int *random_array = new int[number_of_elements]; | ||||||
|             std::generate ( |             std::generate(random_array, random_array + number_of_elements, std::rand); | ||||||
|                 random_array, |  | ||||||
|                 random_array+number_of_elements, |  | ||||||
|                 std::rand |  | ||||||
|             ); |  | ||||||
| #ifdef __APPLE__ | #ifdef __APPLE__ | ||||||
|             FILE * fd = fopen(test_path.string().c_str(), "w"); |             FILE *fd = fopen(test_path.string().c_str(), "w"); | ||||||
|             fcntl(fileno(fd), F_NOCACHE, 1); |             fcntl(fileno(fd), F_NOCACHE, 1); | ||||||
|             fcntl(fileno(fd), F_RDAHEAD, 0); |             fcntl(fileno(fd), F_RDAHEAD, 0); | ||||||
|             time1 = get_timestamp(); |             time1 = get_timestamp(); | ||||||
|             write( |             write(fileno(fd), (char *)random_array, number_of_elements * sizeof(unsigned)); | ||||||
|                 fileno(fd), |  | ||||||
|                 (char*)random_array, |  | ||||||
|                 number_of_elements*sizeof(unsigned) |  | ||||||
|             ); |  | ||||||
|             time2 = get_timestamp(); |             time2 = get_timestamp(); | ||||||
|             fclose(fd); |             fclose(fd); | ||||||
| #endif | #endif | ||||||
| #ifdef __linux__ | #ifdef __linux__ | ||||||
|             int f = open( |             int f = | ||||||
|                 test_path.string().c_str(), |                 open(test_path.string().c_str(), O_CREAT | O_TRUNC | O_WRONLY | O_SYNC, S_IRWXU); | ||||||
|                 O_CREAT|O_TRUNC|O_WRONLY|O_SYNC, |  | ||||||
|                 S_IRWXU |  | ||||||
|             ); |  | ||||||
|             time1 = get_timestamp(); |             time1 = get_timestamp(); | ||||||
|             int ret = write( |             int ret = write(f, random_array, number_of_elements * sizeof(unsigned)); | ||||||
|                 f, |             if (-1 == ret) | ||||||
|                 random_array, |             { | ||||||
|                 number_of_elements*sizeof(unsigned) |  | ||||||
|             ); |  | ||||||
|             if(-1 == ret) { |  | ||||||
|                 throw OSRMException("could not write random data file"); |                 throw OSRMException("could not write random data file"); | ||||||
|             } |             } | ||||||
|             time2 = get_timestamp(); |             time2 = get_timestamp(); | ||||||
|             close(f); |             close(f); | ||||||
| #endif | #endif | ||||||
|             delete[] random_array; |             delete[] random_array; | ||||||
|             SimpleLogger().Write(logDEBUG) << |             SimpleLogger().Write(logDEBUG) << "writing raw 1GB took " << (time2 - time1) * 1000 | ||||||
|                 "writing raw 1GB took " << (time2-time1)*1000 << "ms"; |                                            << "ms"; | ||||||
|             SimpleLogger().Write() << "raw write performance: " << |             SimpleLogger().Write() << "raw write performance: " << std::setprecision(5) | ||||||
|                 std::setprecision(5) << std::fixed << |                                    << std::fixed << 1024 * 1024 / ((time2 - time1) * 1000) | ||||||
|                 1024*1024/((time2-time1)*1000) << "MB/sec"; |                                    << "MB/sec"; | ||||||
| 
 | 
 | ||||||
|             SimpleLogger().Write(logDEBUG) << |             SimpleLogger().Write(logDEBUG) | ||||||
|                 "finished creation of random data. Flush disk cache now!"; |                 << "finished creation of random data. Flush disk cache now!"; | ||||||
| 
 |         } | ||||||
|         } else { |         else | ||||||
|  |         { | ||||||
| 
 | 
 | ||||||
|             //
 |             //
 | ||||||
|             // Run Non-Cached I/O benchmarks
 |             // Run Non-Cached I/O benchmarks
 | ||||||
|             //
 |             //
 | ||||||
| 
 | 
 | ||||||
|             if( !boost::filesystem::exists(test_path) ) { |             if (!boost::filesystem::exists(test_path)) | ||||||
|  |             { | ||||||
|                 throw OSRMException("data file does not exist"); |                 throw OSRMException("data file does not exist"); | ||||||
|             } |             } | ||||||
| 
 | 
 | ||||||
|             double time1, time2; |             double time1, time2; | ||||||
|             //volatiles do not get optimized
 |             // volatiles do not get optimized
 | ||||||
|             Statistics stats; |             Statistics stats; | ||||||
| 
 | 
 | ||||||
| #ifdef __APPLE__ | #ifdef __APPLE__ | ||||||
|             volatile unsigned single_block[1024]; |             volatile unsigned single_block[1024]; | ||||||
|             char * raw_array = new char[number_of_elements*sizeof(unsigned)]; |             char *raw_array = new char[number_of_elements * sizeof(unsigned)]; | ||||||
|             FILE * fd = fopen(test_path.string().c_str(), "r"); |             FILE *fd = fopen(test_path.string().c_str(), "r"); | ||||||
|             fcntl(fileno(fd), F_NOCACHE, 1); |             fcntl(fileno(fd), F_NOCACHE, 1); | ||||||
|             fcntl(fileno(fd), F_RDAHEAD, 0); |             fcntl(fileno(fd), F_RDAHEAD, 0); | ||||||
| #endif | #endif | ||||||
| #ifdef __linux__ | #ifdef __linux__ | ||||||
|             char * single_block = (char*) memalign( |             char *single_block = (char *)memalign(512, 1024 * sizeof(unsigned)); | ||||||
|                 512, |  | ||||||
|                 1024*sizeof(unsigned) |  | ||||||
|             ); |  | ||||||
| 
 | 
 | ||||||
|             int f = open(test_path.string().c_str(), O_RDONLY|O_DIRECT|O_SYNC); |             int f = open(test_path.string().c_str(), O_RDONLY | O_DIRECT | O_SYNC); | ||||||
|             SimpleLogger().Write(logDEBUG) << |             if (-1 == f) | ||||||
|                 "opened, error: " << strerror(errno); |             { | ||||||
|             char * raw_array = (char*) memalign( |                 SimpleLogger().Write(logDEBUG) << "opened, error: " << strerror(errno); | ||||||
|                 512, |                 return -1; | ||||||
|                 number_of_elements*sizeof(unsigned) |             } | ||||||
|             ); |             char *raw_array = (char *)memalign(512, number_of_elements * sizeof(unsigned)); | ||||||
| #endif | #endif | ||||||
|             time1 = get_timestamp(); |             time1 = get_timestamp(); | ||||||
| #ifdef __APPLE__ | #ifdef __APPLE__ | ||||||
|             read(fileno(fd), raw_array, number_of_elements*sizeof(unsigned)); |             read(fileno(fd), raw_array, number_of_elements * sizeof(unsigned)); | ||||||
|             close(fileno(fd)); |             close(fileno(fd)); | ||||||
|             fd = fopen(test_path.string().c_str(), "r"); |             fd = fopen(test_path.string().c_str(), "r"); | ||||||
| #endif | #endif | ||||||
| #ifdef __linux__ | #ifdef __linux__ | ||||||
|             int ret = read(f, raw_array, number_of_elements*sizeof(unsigned)); |             int ret = read(f, raw_array, number_of_elements * sizeof(unsigned)); | ||||||
|             SimpleLogger().Write(logDEBUG) << |             SimpleLogger().Write(logDEBUG) << "read " << ret | ||||||
|                 "read " << ret << " bytes, error: " << strerror(errno); |                                            << " bytes, error: " << strerror(errno); | ||||||
|             close(f); |             close(f); | ||||||
|             f = open(test_path.string().c_str(), O_RDONLY|O_DIRECT|O_SYNC); |             f = open(test_path.string().c_str(), O_RDONLY | O_DIRECT | O_SYNC); | ||||||
|             SimpleLogger().Write(logDEBUG) << |             SimpleLogger().Write(logDEBUG) << "opened, error: " << strerror(errno); | ||||||
|                 "opened, error: " << strerror(errno); |  | ||||||
| #endif | #endif | ||||||
|             time2 = get_timestamp(); |             time2 = get_timestamp(); | ||||||
| 
 | 
 | ||||||
|             SimpleLogger().Write(logDEBUG) << |             SimpleLogger().Write(logDEBUG) << "reading raw 1GB took " << (time2 - time1) * 1000 | ||||||
|                 "reading raw 1GB took " << (time2-time1)*1000 << "ms"; |                                            << "ms"; | ||||||
|             SimpleLogger().Write() << "raw read performance: " << |             SimpleLogger().Write() << "raw read performance: " << std::setprecision(5) << std::fixed | ||||||
|                 std::setprecision(5) << std::fixed << |                                    << 1024 * 1024 / ((time2 - time1) * 1000) << "MB/sec"; | ||||||
|                 1024*1024/((time2-time1)*1000) << "MB/sec"; |  | ||||||
| 
 | 
 | ||||||
|             std::vector<double> timing_results_raw_random; |             std::vector<double> timing_results_raw_random; | ||||||
|             SimpleLogger().Write(logDEBUG) << "running 1000 random I/Os of 4KB"; |             SimpleLogger().Write(logDEBUG) << "running 1000 random I/Os of 4KB"; | ||||||
| @ -217,60 +198,59 @@ int main (int argc, char * argv[]) { | |||||||
| #ifdef __linux__ | #ifdef __linux__ | ||||||
|             lseek(f, 0, SEEK_SET); |             lseek(f, 0, SEEK_SET); | ||||||
| #endif | #endif | ||||||
|             //make 1000 random access, time each I/O seperately
 |             // make 1000 random access, time each I/O seperately
 | ||||||
|             unsigned number_of_blocks = (number_of_elements*sizeof(unsigned)-1)/4096; |             unsigned number_of_blocks = (number_of_elements * sizeof(unsigned) - 1) / 4096; | ||||||
|             for(unsigned i = 0; i < 1000; ++i) { |             for (unsigned i = 0; i < 1000; ++i) | ||||||
|                 unsigned block_to_read = std::rand()%number_of_blocks; |             { | ||||||
|                 off_t current_offset = block_to_read*4096; |                 unsigned block_to_read = std::rand() % number_of_blocks; | ||||||
|  |                 off_t current_offset = block_to_read * 4096; | ||||||
|                 time1 = get_timestamp(); |                 time1 = get_timestamp(); | ||||||
| #ifdef __APPLE__ | #ifdef __APPLE__ | ||||||
|                 int ret1 = fseek(fd, current_offset, SEEK_SET); |                 int ret1 = fseek(fd, current_offset, SEEK_SET); | ||||||
|                 int ret2 = read(fileno(fd), (char*)&single_block[0], 4096); |                 int ret2 = read(fileno(fd), (char *)&single_block[0], 4096); | ||||||
| #endif | #endif | ||||||
| 
 | 
 | ||||||
| #ifdef __FreeBSD__ | #ifdef __FreeBSD__ | ||||||
| 		int ret1 = 0; |                 int ret1 = 0; | ||||||
| 		int ret2 = 0; |                 int ret2 = 0; | ||||||
| #endif | #endif | ||||||
| 
 | 
 | ||||||
| #ifdef __linux__ | #ifdef __linux__ | ||||||
|                 int ret1 = lseek(f, current_offset, SEEK_SET); |                 int ret1 = lseek(f, current_offset, SEEK_SET); | ||||||
|                 int ret2 = read(f, (char*)single_block, 4096); |                 int ret2 = read(f, (char *)single_block, 4096); | ||||||
| #endif | #endif | ||||||
|                 time2 = get_timestamp(); |                 time2 = get_timestamp(); | ||||||
|                 if( ((off_t)-1) == ret1) { |                 if (((off_t) - 1) == ret1) | ||||||
|                     SimpleLogger().Write(logWARNING) |                 { | ||||||
|                         << "offset: " << current_offset; |                     SimpleLogger().Write(logWARNING) << "offset: " << current_offset; | ||||||
|                     SimpleLogger().Write(logWARNING) |                     SimpleLogger().Write(logWARNING) << "seek error " << strerror(errno); | ||||||
|                         << "seek error " << strerror(errno); |  | ||||||
|                     throw OSRMException("seek error"); |                     throw OSRMException("seek error"); | ||||||
|                 } |                 } | ||||||
|                  if(-1 == ret2) { |                 if (-1 == ret2) | ||||||
|                     SimpleLogger().Write(logWARNING) |                 { | ||||||
|                         << "offset: " << current_offset; |                     SimpleLogger().Write(logWARNING) << "offset: " << current_offset; | ||||||
|                     SimpleLogger().Write(logWARNING) |                     SimpleLogger().Write(logWARNING) << "read error " << strerror(errno); | ||||||
|                         << "read error " << strerror(errno); |  | ||||||
|                     throw OSRMException("read error"); |                     throw OSRMException("read error"); | ||||||
|                 } |                 } | ||||||
|                timing_results_raw_random.push_back((time2-time1)*1000.); |                 timing_results_raw_random.push_back((time2 - time1) * 1000.); | ||||||
|             } |             } | ||||||
| 
 | 
 | ||||||
|             // Do statistics
 |             // Do statistics
 | ||||||
|             SimpleLogger().Write(logDEBUG) << "running raw random I/O statistics"; |             SimpleLogger().Write(logDEBUG) << "running raw random I/O statistics"; | ||||||
|             std::ofstream random_csv("random.csv", std::ios::trunc); |             std::ofstream random_csv("random.csv", std::ios::trunc); | ||||||
|             for(unsigned i = 0; i < timing_results_raw_random.size(); ++i) { |             for (unsigned i = 0; i < timing_results_raw_random.size(); ++i) | ||||||
|  |             { | ||||||
|                 random_csv << i << ", " << timing_results_raw_random[i] << std::endl; |                 random_csv << i << ", " << timing_results_raw_random[i] << std::endl; | ||||||
|             } |             } | ||||||
|             random_csv.close(); |             random_csv.close(); | ||||||
|             RunStatistics(timing_results_raw_random, stats); |             RunStatistics(timing_results_raw_random, stats); | ||||||
| 
 | 
 | ||||||
|             SimpleLogger().Write() << "raw random I/O: "  << |             SimpleLogger().Write() << "raw random I/O: " << std::setprecision(5) << std::fixed | ||||||
|                 std::setprecision(5) << std::fixed << |                                    << "min: " << stats.min << "ms, " | ||||||
|                 "min: "  << stats.min  << "ms, " << |                                    << "mean: " << stats.mean << "ms, " | ||||||
|                 "mean: " << stats.mean << "ms, " << |                                    << "med: " << stats.med << "ms, " | ||||||
|                 "med: "  << stats.med  << "ms, " << |                                    << "max: " << stats.max << "ms, " | ||||||
|                 "max: "  << stats.max  << "ms, " << |                                    << "dev: " << stats.dev << "ms"; | ||||||
|                 "dev: "  << stats.dev  << "ms"; |  | ||||||
| 
 | 
 | ||||||
|             std::vector<double> timing_results_raw_seq; |             std::vector<double> timing_results_raw_seq; | ||||||
| #ifdef __APPLE__ | #ifdef __APPLE__ | ||||||
| @ -280,81 +260,80 @@ int main (int argc, char * argv[]) { | |||||||
|             lseek(f, 0, SEEK_SET); |             lseek(f, 0, SEEK_SET); | ||||||
| #endif | #endif | ||||||
| 
 | 
 | ||||||
|             //read every 100th block
 |             // read every 100th block
 | ||||||
|             for( |             for (unsigned i = 0; i < 1000; ++i) | ||||||
|                 unsigned i = 0; |             { | ||||||
|                 i < 1000; |                 off_t current_offset = i * 4096; | ||||||
|                 ++i |  | ||||||
|             ) { |  | ||||||
|                 off_t current_offset = i*4096; |  | ||||||
|                 time1 = get_timestamp(); |                 time1 = get_timestamp(); | ||||||
|     #ifdef __APPLE__ | #ifdef __APPLE__ | ||||||
|                 int ret1 = fseek(fd, current_offset, SEEK_SET); |                 int ret1 = fseek(fd, current_offset, SEEK_SET); | ||||||
|                 int ret2 = read(fileno(fd), (char*)&single_block, 4096); |                 int ret2 = read(fileno(fd), (char *)&single_block, 4096); | ||||||
|     #endif | #endif | ||||||
| 
 | 
 | ||||||
|     #ifdef __FreeBSD__ | #ifdef __FreeBSD__ | ||||||
| 		int ret1 = 0; |                 int ret1 = 0; | ||||||
| 		int ret2 = 0; |                 int ret2 = 0; | ||||||
|     #endif | #endif | ||||||
| 
 | 
 | ||||||
|     #ifdef __linux__ | #ifdef __linux__ | ||||||
|                 int ret1 = lseek(f, current_offset, SEEK_SET); |                 int ret1 = lseek(f, current_offset, SEEK_SET); | ||||||
| 
 | 
 | ||||||
|                 int ret2 = read(f, (char*)single_block, 4096); |                 int ret2 = read(f, (char *)single_block, 4096); | ||||||
|     #endif | #endif | ||||||
|                 time2 = get_timestamp(); |                 time2 = get_timestamp(); | ||||||
|                 if( ((off_t)-1) == ret1) { |                 if (((off_t) - 1) == ret1) | ||||||
|                     SimpleLogger().Write(logWARNING) |                 { | ||||||
|                         << "offset: " << current_offset; |                     SimpleLogger().Write(logWARNING) << "offset: " << current_offset; | ||||||
|                     SimpleLogger().Write(logWARNING) |                     SimpleLogger().Write(logWARNING) << "seek error " << strerror(errno); | ||||||
|                         << "seek error " << strerror(errno); |  | ||||||
|                     throw OSRMException("seek error"); |                     throw OSRMException("seek error"); | ||||||
|                 } |                 } | ||||||
|                  if(-1 == ret2) { |                 if (-1 == ret2) | ||||||
|                     SimpleLogger().Write(logWARNING) |                 { | ||||||
|                         << "offset: " << current_offset; |                     SimpleLogger().Write(logWARNING) << "offset: " << current_offset; | ||||||
|                     SimpleLogger().Write(logWARNING) |                     SimpleLogger().Write(logWARNING) << "read error " << strerror(errno); | ||||||
|                         << "read error " << strerror(errno); |  | ||||||
|                     throw OSRMException("read error"); |                     throw OSRMException("read error"); | ||||||
|                 } |                 } | ||||||
|                timing_results_raw_seq.push_back((time2-time1)*1000.); |                 timing_results_raw_seq.push_back((time2 - time1) * 1000.); | ||||||
|             } |             } | ||||||
|     #ifdef __APPLE__ | #ifdef __APPLE__ | ||||||
|             fclose(fd); |             fclose(fd); | ||||||
|             // free(single_element);
 |             // free(single_element);
 | ||||||
|             free(raw_array); |             free(raw_array); | ||||||
|             // free(single_block);
 | // free(single_block);
 | ||||||
|     #endif | #endif | ||||||
|     #ifdef __linux__ | #ifdef __linux__ | ||||||
|             close(f); |             close(f); | ||||||
|     #endif | #endif | ||||||
|             //Do statistics
 |             // Do statistics
 | ||||||
|             SimpleLogger().Write(logDEBUG) << "running sequential I/O statistics"; |             SimpleLogger().Write(logDEBUG) << "running sequential I/O statistics"; | ||||||
|             //print simple statistics: min, max, median, variance
 |             // print simple statistics: min, max, median, variance
 | ||||||
|             std::ofstream seq_csv("sequential.csv", std::ios::trunc); |             std::ofstream seq_csv("sequential.csv", std::ios::trunc); | ||||||
|             for(unsigned i = 0; i < timing_results_raw_seq.size(); ++i) { |             for (unsigned i = 0; i < timing_results_raw_seq.size(); ++i) | ||||||
|  |             { | ||||||
|                 seq_csv << i << ", " << timing_results_raw_seq[i] << std::endl; |                 seq_csv << i << ", " << timing_results_raw_seq[i] << std::endl; | ||||||
|             } |             } | ||||||
|             seq_csv.close(); |             seq_csv.close(); | ||||||
|             RunStatistics(timing_results_raw_seq, stats); |             RunStatistics(timing_results_raw_seq, stats); | ||||||
|             SimpleLogger().Write() << "raw sequential I/O: " << |             SimpleLogger().Write() << "raw sequential I/O: " << std::setprecision(5) << std::fixed | ||||||
|                 std::setprecision(5) << std::fixed << |                                    << "min: " << stats.min << "ms, " | ||||||
|                 "min: "  << stats.min  << "ms, " << |                                    << "mean: " << stats.mean << "ms, " | ||||||
|                 "mean: " << stats.mean << "ms, " << |                                    << "med: " << stats.med << "ms, " | ||||||
|                 "med: "  << stats.med  << "ms, " << |                                    << "max: " << stats.max << "ms, " | ||||||
|                 "max: "  << stats.max  << "ms, " << |                                    << "dev: " << stats.dev << "ms"; | ||||||
|                 "dev: "  << stats.dev  << "ms"; |  | ||||||
| 
 | 
 | ||||||
|             if( boost::filesystem::exists(test_path) ) { |             if (boost::filesystem::exists(test_path)) | ||||||
|  |             { | ||||||
|                 boost::filesystem::remove(test_path); |                 boost::filesystem::remove(test_path); | ||||||
|                 SimpleLogger().Write(logDEBUG) << "removing temporary files"; |                 SimpleLogger().Write(logDEBUG) << "removing temporary files"; | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
|     } catch ( const std::exception & e ) { |     } | ||||||
|  |     catch (const std::exception &e) | ||||||
|  |     { | ||||||
|         SimpleLogger().Write(logWARNING) << "caught exception: " << e.what(); |         SimpleLogger().Write(logWARNING) << "caught exception: " << e.what(); | ||||||
|         SimpleLogger().Write(logWARNING) << "cleaning up, and exiting"; |         SimpleLogger().Write(logWARNING) << "cleaning up, and exiting"; | ||||||
|         if(boost::filesystem::exists(test_path)) { |         if (boost::filesystem::exists(test_path)) | ||||||
|  |         { | ||||||
|             boost::filesystem::remove(test_path); |             boost::filesystem::remove(test_path); | ||||||
|             SimpleLogger().Write(logWARNING) << "removing temporary files"; |             SimpleLogger().Write(logWARNING) << "removing temporary files"; | ||||||
|         } |         } | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user