Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Performance #977

Open
wants to merge 4 commits into
base: master
Choose a base branch
from

Conversation

matthieu-c-tagheuer
Copy link

No description provided.

@geky-bot
Copy link
Collaborator

geky-bot commented May 2, 2024

Tests passed ✓, Code: 17072 B (+0.0%), Stack: 1440 B (+0.0%), Structs: 812 B (+0.0%)
Code Stack Structs Coverage
Default 17072 B (+0.0%) 1440 B (+0.0%) 812 B (+0.0%) Lines 2385/2565 lines (-0.0%)
Readonly 6194 B (+0.0%) 448 B (+0.0%) 812 B (+0.0%) Branches 1245/1584 branches (+0.0%)
Threadsafe 17932 B (+0.0%) 1440 B (+0.0%) 820 B (+0.0%) Benchmarks
Multiversion 17132 B (+0.0%) 1440 B (+0.0%) 816 B (+0.0%) Readed 29442062634 B (+0.2%)
Migrate 18768 B (+0.0%) 1744 B (+0.0%) 816 B (+0.0%) Proged 1482874766 B (+0.0%)
Error-asserts 17756 B (+0.0%) 1432 B (+0.0%) 812 B (+0.0%) Erased 1568888832 B (+0.0%)

Can be enabled with LFS_CACHE_TRACE
it will output information with LFS_DEBUG
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
cache trace show possible caching in lfs_dir_getslice

cache recache for block 83 number 23 line=790
cache recache for block 881 number 23 line=790
cache recache for block 929 number 23 line=790
cache recache for block 977 number 23 line=790
cache recache for block 128 number 24 line=790

For the same test than previous patch

before patch

top read operation (number of flash read size, number of flash op)
15044, 41
15044, 41
15044, 41
15044, 41
16068, 42

total read/write
total read=18809040 B write=4287328 B
total num read=49477 op write=7732 op

after patch
top read operation (number of flash read size, number of flash op)
15044, 41
15044, 41
15044, 41
15044, 41
16068, 42

total read/write
total read=18852728 B write=4287328 B
total num read=45678 op write=7732 op

cache recache for block 882 number 2 line=998
cache recache for block 911 number 2 line=998
cache recache for block 930 number 2 line=998
cache recache for block 959 number 2 line=998
cache recache for block 978 number 2 line=998
@geky-bot
Copy link
Collaborator

geky-bot commented May 2, 2024

Tests passed ✓, Code: 17256 B (+1.1%), Stack: 1480 B (+2.8%), Structs: 812 B (+0.0%)
Code Stack Structs Coverage
Default 17256 B (+1.1%) 1480 B (+2.8%) 812 B (+0.0%) Lines 2412/2593 lines (-0.0%)
Readonly 6274 B (+1.3%) 456 B (+1.8%) 812 B (+0.0%) Branches 1261/1604 branches (+0.0%)
Threadsafe 18116 B (+1.1%) 1480 B (+2.8%) 820 B (+0.0%) Benchmarks
Multiversion 17320 B (+1.1%) 1480 B (+2.8%) 816 B (+0.0%) Readed 29448406163 B (+0.3%)
Migrate 18960 B (+1.1%) 1760 B (+0.9%) 816 B (+0.0%) Proged 1482874766 B (+0.0%)
Error-asserts 17968 B (+1.2%) 1480 B (+3.4%) 812 B (+0.0%) Erased 1568888832 B (+0.0%)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants