2014/01/23 (THU) [実験内容] fileread と regex_mas (BM_search) の2つで計測 一度実行すると kernel の cache の中に入り込んでしまうため、測るたんびに再起動という原始的なことを( (条件分岐: main.cc) if (divide_read_flag != 0) { printf("[divide read mode]\n"); w->file_mmap = (char*)manager->allocate(w->read_filesize); r_run = manager->create_task(RUN_READ_BLOCKS, (memaddr)&w->self, sizeof(memaddr),0,0); }else { printf("[mmap mode]\n"); r_run = manager->create_task(MMAP , (memaddr)&w->self, sizeof(memaddr),0,0); } (読み込み部分の実装: main.cc) [問題点] w->file_mmap = (char*)manager->allocate(w->read_filesize); と allocate しようとしているので、メモリ量より大きいデータに対してプログラムを実行することができない。(要改善) [実験環境] local の Mac Book Air にて計測 Core i5, SSD 240GB, memory 4GB 読み込んだ file size : 11524674 Byte (11.5MB) [結果] [fileread] (D_Read : divide read) CPU_TYPE SPE_ANY mode , cpu_num, first, cache MMAP , 1, 0.085, 0.104 D_Read , 1, 50.116, 17.038 D_Read , 2, 82.468, 10.731 D_Read , 3, 63.819, 10.039 D_Read , 4, 56.960, 10.176 CPU_TYPE IO_0 mode , cpu_num, first, cache MMAP , 1, 0.102, 0.099 D_Read , 1, 49.611, 12.747 D_Read , 2, 49.524, 13.409 D_Read , 3, 49,823, 12.864 D_Read , 4, 49.581, 13.505 [regex_mas(BM_search)] CPU_TYPE SPE_ANY mode , cpu_num, first, cache MMAP , 1, 102.260, 38.466 MMAP , 2, 75.201, 23.714 MMAP , 3, 60.065, 18.756 MMAP , 4, 58.234, 18.715 D_Read , 1, 82.814, 45.250 D_Read , 2, 127.040, 30.094 D_Read , 3, 77.703, 26.045 D_Read , 4, 72.097, 26.188 CPU_TYPE IO_0 mode , cpu_num, first, cache MMAP , 1, 102.824, 38.275 MMAP , 2, 72.691, 23.418 MMAP , 3, 60.065, 18.786 MMAP , 4, 58.234, 18.715 D_Read , 1, 84.679, 46.063 D_Read , 2, 71.691, 33.418 D_Read , 3, 68.778, 30.471 D_Read , 4, 66.016, 30.357