Skip to content

Commit c0bc253

Browse files
committed
improve data file loading performance
1 parent 93bd0c4 commit c0bc253

File tree

2 files changed

+13
-5
lines changed

2 files changed

+13
-5
lines changed

include/utils.h

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -986,10 +986,17 @@ inline void copy_aligned_data_from_file(const char *bin_file, T *&data, size_t &
986986
npts = (unsigned)npts_i32;
987987
dim = (unsigned)dim_i32;
988988

989-
for (size_t i = 0; i < npts; i++)
989+
if (rounded_dim != dim)
990990
{
991-
reader.read((char *)(data + i * rounded_dim), dim * sizeof(T));
992-
memset(data + i * rounded_dim + dim, 0, (rounded_dim - dim) * sizeof(T));
991+
for (size_t i = 0; i < npts; i++)
992+
{
993+
reader.read((char*)(data + i * rounded_dim), dim * sizeof(T));
994+
memset(data + i * rounded_dim + dim, 0, (rounded_dim - dim) * sizeof(T));
995+
}
996+
}
997+
else
998+
{
999+
reader.read((char *)data, npts * dim * sizeof(T));
9931000
}
9941001
}
9951002

src/in_mem_static_graph_reformat.cpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,12 @@ std::tuple<uint32_t, uint32_t, size_t> InMemStaticGraphReformatStore::load_impl(
1212
size_t num_points;
1313
size_t file_offset = 0; // will need this for single file format support
1414

15-
size_t check_file_size = get_file_size(filename);
16-
1715
std::ifstream in;
1816
in.exceptions(std::ios::badbit | std::ios::failbit);
1917
in.open(filename, std::ios::binary);
18+
// get file size
19+
size_t check_file_size = in.tellg();
20+
2021
in.seekg(file_offset, in.beg);
2122
in.read((char*)&expected_file_size, sizeof(size_t));
2223
in.read((char*)&_max_observed_degree, sizeof(uint32_t));

0 commit comments

Comments
 (0)