Git 状态在 VMWare 来宾上运行缓慢,但在主机上则不然

发布于 2024-09-25 23:43:07 字数 995 浏览 3 评论 0原文

我正在 Windows XP 计算机上的 VMWare Player 中运行 Ubuntu Lucid 来宾,使用共享文件夹。 git status 在虚拟机中很慢(24 秒),但在主机上却很快(0.06 秒)知道为什么吗?

更多详细信息:

  • 我的存储库大约有 620 MB(通过在来宾操作系统中执行 du -hs . 获得),
  • 我尝试运行 git gc正如这里所描述的,但这没有什么区别:

计数对象:3604,完成。

压缩对象:100% (1069/1069),

完成。写入对象:100%

(3604/3604),完成。总计 3604(增量 2143),重复使用 3604(增量 2143)

删除重复对象:100%

(256/256),完成。

  • 我的存储库包含大量 CSV 文件和代码 - 这是一个坏主意吗?
  • 在 Windows 主机上,我使用 PortableGit-1.7.2.3-preview20100911
  • 在 Ubuntu 客户机上,我使用从 aptitude 安装的 Git 版本 1.7.0.4
  • 在 Ubuntu 客户机上,我使用 VMWare 共享文件夹从 Windows 主机共享文件夹 在 Windows 客户机
  • 上,我别无选择,只能运行 Sophos,但我暂时关闭了“按访问扫描”,这没有什么区别。
  • 我最初遇到了来宾时钟运行缓慢的问题,但这已通过 grub 选项 nosmp noapic nolapic 修复,如 此处

I am running an Ubuntu Lucid guest inside VMWare Player on a Windows XP machine, using a shared folder. git status is slow in the VM (24 seconds) but fast on the host machine (0.06 seconds) Any idea why?

More details:

  • My repo is about 620 MB (obtained by doing du -hs . in the guest OS)
  • I've tried running git gc as described here, but it made no difference:

Counting objects: 3604, done.

Compressing objects: 100% (1069/1069),

done. Writing objects: 100%

(3604/3604), done. Total 3604 (delta 2143), reused 3604 (delta 2143)

Removing duplicate objects: 100%

(256/256), done.

  • My repo contains lots of CSV files as well as code - is this a bad idea?
  • On Windows host I am using PortableGit-1.7.2.3-preview20100911
  • On Ubuntu guest I use Git version 1.7.0.4 installed from aptitude
  • On Ubuntu guest I am sharing a folder from the windows host using the VMWare shared folder facility
  • On Windows guest I have no choice but to have Sophos running, but I temporarily turned off "on-access scanning" and it made no difference.
  • I originally had problems with the guest clock running slow, but this was fixed with grub options nosmp noapic nolapic as described here.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

眼眸里的那抹悲凉 2024-10-02 23:43:07

共享文件夹具有相当大的开销,因为您跨越了来宾<>主机边界。我不太熟悉 git 的内部结构,但我认为它会执行很多相当小的操作,涉及相对较高的每次操作开销。您可以尝试执行 git repack 来减少单个对象(文件)的数量,可能会有所帮助。

您是否必须在来宾和主机之间共享存储库?

Shared Folders have a fair amount of overhead, since you're crossing the guest<>host boundary. I'm not super-familiar with the internals of git, but I would assume it does a lot of fairly small operations, involving a relatively high amount of per-operation overhead. You could try doing a git repack to reduce the amount of individual objects (files), might help a bit.

Is it imperative that you share the repository between guest and host?

忆梦 2024-10-02 23:43:07

1/ 通过 VM 进行读取访问通常比本机操作系统慢

2/ git status当仓库有子模块时很慢:你有吗?
使用 git1.7.2+,您可以忽略带有 < 的内容代码>--ignore-submodules选项

1/ Read access are generally slower through a VM than a native OS

2/ git status is slow when the repo has submodules: do you have any?
With git1.7.2+, you can ignore those with the --ignore-submodules option.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文