Measure zstd decompress time.

This commit is contained in:
Syoyo Fujita
2016-09-06 02:11:23 +09:00
parent 1b88a1e3c7
commit 4a18e241d9
2 changed files with 17 additions and 2 deletions

View File

@@ -29,7 +29,11 @@ solution "objview"
end end
if _OPTIONS['with-zstd'] then if _OPTIONS['with-zstd'] then
print("with-zstd")
defines { 'ENABLE_ZSTD' } defines { 'ENABLE_ZSTD' }
-- Set path to zstd installed dir.
includedirs { '$$HOME/local/include' }
libdirs { '$$HOME/local/lib' }
links { 'zstd' } links { 'zstd' }
end end

View File

@@ -274,7 +274,8 @@ const char* get_file_data(size_t *len, const char* filename)
} }
} else if (strcmp(ext, ".zst") == 0) { } else if (strcmp(ext, ".zst") == 0) {
// gzipped data. printf("zstd\n");
// Zstandard data.
std::vector<char> buf; std::vector<char> buf;
bool ret = zstd_load(&buf, filename); bool ret = zstd_load(&buf, filename);
@@ -302,13 +303,22 @@ bool LoadObjAndConvert(float bmin[3], float bmax[3], const char* filename, int n
std::vector<tinyobj_opt::shape_t> shapes; std::vector<tinyobj_opt::shape_t> shapes;
std::vector<tinyobj_opt::material_t> materials; std::vector<tinyobj_opt::material_t> materials;
auto load_t_begin = std::chrono::high_resolution_clock::now();
size_t data_len = 0; size_t data_len = 0;
const char* data = get_file_data(&data_len, filename); const char* data = get_file_data(&data_len, filename);
if (data == nullptr) { if (data == nullptr) {
printf("failed to load file\n");
exit(-1); exit(-1);
return false; return false;
} }
printf("filesize: %d\n", (int)data_len); auto load_t_end = std::chrono::high_resolution_clock::now();
std::chrono::duration<double, std::milli> load_ms = load_t_end - load_t_begin;
if (verbose) {
std::cout << "filesize: " << data_len << std::endl;
std::cout << "load time: " << load_ms.count() << " [msecs]" << std::endl;
}
tinyobj_opt::LoadOption option; tinyobj_opt::LoadOption option;
option.req_num_threads = num_threads; option.req_num_threads = num_threads;
option.verbose = verbose; option.verbose = verbose;
@@ -616,6 +626,7 @@ int main(int argc, char **argv)
size_t data_len = 0; size_t data_len = 0;
const char* data = get_file_data(&data_len, argv[1]); const char* data = get_file_data(&data_len, argv[1]);
if (data == nullptr) { if (data == nullptr) {
printf("failed to load file\n");
exit(-1); exit(-1);
return false; return false;
} }