Skip to content
Snippets Groups Projects
  • Arseniy Alekseyev's avatar
    52464a20
    rhg: parallellize computation of [unsure_is_modified] · 52464a20
    Arseniy Alekseyev authored
    [unsure_is_modified] is called for every file for which we can't
    determine its status based on its size and mtime alone.
    
    In particular, this happens if the mtime of the file changes
    without its contents changing.
    
    Parallellizing this improves performance significantly when
    we have many of these files.
    
    Here's an example run (on a repo with ~400k files after dropping FS caches)
    
    ```
    before:
    real	0m53.901s
    user	0m27.806s
    sys	0m31.325s
    
    after:
    real	0m32.017s
    user	0m34.277s
    sys	1m26.250s
    ```
    
    Another example run (a different FS):
    
    ```
    before:
    real	3m28.479s
    user	0m31.800s
    sys	0m25.324s
    
    after:
    real	0m29.751s
    user	0m41.814s
    sys	1m15.387s
    ```
    52464a20
    History
    rhg: parallellize computation of [unsure_is_modified]
    Arseniy Alekseyev authored
    [unsure_is_modified] is called for every file for which we can't
    determine its status based on its size and mtime alone.
    
    In particular, this happens if the mtime of the file changes
    without its contents changing.
    
    Parallellizing this improves performance significantly when
    we have many of these files.
    
    Here's an example run (on a repo with ~400k files after dropping FS caches)
    
    ```
    before:
    real	0m53.901s
    user	0m27.806s
    sys	0m31.325s
    
    after:
    real	0m32.017s
    user	0m34.277s
    sys	1m26.250s
    ```
    
    Another example run (a different FS):
    
    ```
    before:
    real	3m28.479s
    user	0m31.800s
    sys	0m25.324s
    
    after:
    real	0m29.751s
    user	0m41.814s
    sys	1m15.387s
    ```
This project manages its dependencies using Cargo. Learn more