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

A binary file in the work dir makes the app unresponsive #5139

Open
krlvi opened this issue Oct 14, 2024 · 1 comment
Open

A binary file in the work dir makes the app unresponsive #5139

krlvi opened this issue Oct 14, 2024 · 1 comment
Labels
🦀gitoxide🦀 `gitoxide` might help here

Comments

@krlvi
Copy link
Member

krlvi commented Oct 14, 2024

eg .iap or .zip 30-50mb in size

Reported on discord
https://discord.com/channels/1060193121130000425/1073202153163857920/1295404335777320960

@Byron Byron added the 🦀gitoxide🦀 `gitoxide` might help here label Oct 14, 2024
@Byron
Copy link
Collaborator

Byron commented Oct 14, 2024

For some time in the future, I think GitButler will keep creating Git trees from the worktree contents. And I say that because I am not going to challenge it until everything works perfectly with the current system, and is tested perfectly as well.

With that in mind, one will either have to exclude big files, or… learn how to handle them quickly.
And there I think gitoxide can can provide a knob to turn and basically turn off compression when writing loose objects. This would allow data to be read and written as is, with performance approaching whatever maxes out the disk for reads and writes. In numbers, I'd think that a moderately fast CPU core can compress with 25MB/s, but write 1000MB/s easily on even somewhat slow SSDs. This should bring the time to add a such a file to a tree down from 2s (which probably has something to do with the slowdown) to something closer to 50ms, a 40x improvement.

Could it really be that straightforward? I surely hope this plays a big part in it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
🦀gitoxide🦀 `gitoxide` might help here
Projects
None yet
Development

No branches or pull requests

2 participants