extrawurst / gitui

Blazing 💥 fast terminal-ui for git written in rust 🦀
MIT License
18.16k stars 553 forks source link

Lots of memory usage with GBs sized files in diff #1698

Open willtonkin opened 1 year ago

willtonkin commented 1 year ago

Describe the bug

Opening the app in a repo containing a large uncommitted file has gitui quickly consuming all available memory on my system. I have to quit quickly before my system halts.

To Reproduce

  1. place a multi GB file in a repo
  2. open gitui
  3. scroll down and select this file
  4. (optional) scroll away and select another file, notice that memory usage continues to climb

Expected behaviour

It took me a while to notice the issue, as it was taking down my machine before I could play-around, I was assuming it was another cause.

It appears that gitui was trying to present the diff of the new uncommitted file to me. I believe the flame graph below confirms that git_diff_file_content__init_from_src().

Some potential solutions:

  1. Perhaps have a limit on the size of file contents we're willing to present to the user in the diff viewer
  2. or perhaps only present the file content on-focus of the diff viewer (on the right)

Screenshots Screenshot from 2023-05-23 08-39-05

Context (please complete the following information):

Additional context

make profile which produced the following flamegraph:

flamegraph

stale[bot] commented 5 months ago

This issue has been automatically marked as stale because it has not had any activity half a year. It will be closed in 14 days if no further activity occurs. Thank you for your contributions.