Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
lfs_dir_traverse: better try to use cache
cache trace show lots of possible caching in lfs_dir_traverse cache recache for block 835 number 4938 line=1683 cache recache for block 882 number 4938 line=1683 cache recache for block 930 number 4938 line=1683 cache recache for block 978 number 4938 line=1683 test config .read_size = 4, .prog_size = 16, .block_size = 4096, .block_count = (8*1024), .cache_size = 1024, .metadata_max = 1024, for (int i = 0; i <= 1000; i++) { char test_path[32]; if (i > 100) { sprintf(test_path, "testdir/test%d", i-100); err = lfs_remove(&lfs, test_path); } sprintf(test_path, "testdir/test%d", i); uint32_t prng = i; lfs_size_t size = 4096 + (test_prng(&prng) & 3); lfs_file_t file; err = lfs_file_open(&lfs, &file, test_path, LFS_O_WRONLY | LFS_O_CREAT | LFS_O_TRUNC); lfs_ssize_t res = lfs_file_write(&lfs, &file, chunk, size); err = lfs_file_close(&lfs, &file); } before patch top read operation (number of flash read size, number of flash op) 106060, 16976, 106060, 16976, 106560, 19645, 107084, 16977, 108820, 17624, total read/write total read=26174188 B write=4287328 B total num read=1445383 op write=7732 op after patch 15044, 41 15044, 41 15044, 41 15044, 41 16068, 42, total read=18809040 B write=4287328 B total num read=49477 op write=7732 op
- Loading branch information