-1
我在數據集中有一個大表約4000萬行。在Python中,使用h5py庫讀取文件非常快。不過,我需要在我的C++代碼中進行讀取。所以我嘗試了下面的代碼,但是當我運行它時它會凍結(太慢)。我已經測試了大約1000行的較小案例的代碼,這很好。我不知道該怎麼辦。希望任何人都能幫忙。非常感謝你。這裏是我的代碼:C讀取大數據集變成HDF5慢(使用HD5_read)
#define NFIELDS (hsize_t) 2
#define NRECORDS (hsize_t) 44169408
int main(){
hid_t file_id, dataset_id, group_id; /* identifiers */
herr_t status;
float dset_data[NRECORDS][NFIELDS];
file_id = H5Fopen("large.h5", H5F_ACC_RDONLY, H5P_DEFAULT);
dataset_id = H5Dopen(file_id, "ds", H5P_DEFAULT);
status = H5Dread(dataset_id, H5T_NATIVE_FLOAT, H5S_ALL, H5S_ALL,
H5P_DEFAULT, dset_data);
/* Close the dataset. */
H5Dclose(dataset_id);
/* Close the file. */
H5Fclose(file_id);
printf("OK\n");
for (int i =0; i< 44169408; ++i){
printf("%f, %f\n", dset_data[i][0], dset_data[i][1]);
}
return 0;
}
您是否嘗試過不輸出所有4400萬行?我希望輸出花費的時間比實際的數據讀數更長。 – uesp 2014-09-22 01:30:50