b086e32c63
Much of the memory bloat turned out to be due to getKeysReferenced containing a mapM, which is strict and buffered the whole list rather than streaming it. The other half of the bloat was due to building a temporary Set in order to call S.difference. While that is more cpu efficient, I switched to successive S.delete, since with it, I can run a whole git annex unused in less than 8 mb of memory. The whole Set of keys with content available is still stored in memory, so running unused in a repo with a whole lot of file content will still use more memory. In a repo containing 6000 files, it needed 40 mb. Note that the status command still uses the bloatful getKeysReferenced. |
||
---|---|---|
.. | ||
auto_remotes | ||
cache_key_info | ||
object_dir_reorg_v2 | ||
parallel_possibilities | ||
smudge | ||
tahoe_lfs_for_reals | ||
wishlist:___34__git_annex_add__34___multiple_processes | ||
wishlist:_Prevent_repeated_password_prompts_for_one_command | ||
wishlist:_Provide_a___34__git_annex__34___command_that_will_skip_duplicates | ||
wishlist:_swift_backend | ||
add_--exclude_option_to_git_annex_find.mdwn | ||
add_-all_option.mdwn | ||
add_a_git_backend.mdwn | ||
auto_remotes.mdwn | ||
avoid_unnecessary_union_merges.mdwn | ||
backendSHA1.mdwn | ||
branching.mdwn | ||
cache_key_info.mdwn | ||
checkout.mdwn | ||
done.mdwn | ||
exclude_files_on_a_given_remote.mdwn | ||
file_copy_progress_bar.mdwn | ||
fsck.mdwn | ||
fsck_special_remotes.mdwn | ||
git-annex-shell.mdwn | ||
git-annex_unused_eats_memory.mdwn | ||
git_annex_init_:_include_repo_description_and__47__or_UUID_in_commit_message.mdwn | ||
gitolite_and_gitosis_support.mdwn | ||
gitrm.mdwn | ||
hidden_files.mdwn | ||
immutable_annexed_files.mdwn | ||
link_file_to_remote_repo_feature.mdwn | ||
network_remotes.mdwn | ||
object_dir_reorg_v2.mdwn | ||
optimise_git-annex_merge.mdwn | ||
parallel_possibilities.mdwn | ||
Please_abort_build_if___34__make_test__34___fails.mdwn | ||
Please_add_support_for_monad-control_0.3.x.mdwn | ||
pushpull.mdwn | ||
redundancy_stats_in_status.mdwn | ||
rsync.mdwn | ||
S3.mdwn | ||
smudge.mdwn | ||
speed_up_fsck.mdwn | ||
support-non-utf8-locales.mdwn | ||
support_fsck_in_bare_repos.mdwn | ||
support_S3_multipart_uploads.mdwn | ||
symlink_farming_commit_hook.mdwn | ||
tahoe_lfs_for_reals.mdwn | ||
union_mounting.mdwn | ||
use_cp_reflink.mdwn | ||
using_url_backend.mdwn | ||
windows_support.mdwn | ||
wishlist:___34__git_annex_add__34___multiple_processes.mdwn | ||
wishlist:_Prevent_repeated_password_prompts_for_one_command.mdwn | ||
wishlist:_Provide_a___34__git_annex__34___command_that_will_skip_duplicates.mdwn | ||
wishlist:_support_for_more_ssh_urls_.mdwn | ||
wishlist:_swift_backend.mdwn |