2012-04-21 88 views
6
优化例如:It

我在相当大的和复杂的Java项目的(超过一百万行的代码,更多)和十年历史价值的使用例如:It。
在这里,我正面临严重的EGit性能问题,因为即使是Java文件中的一小行更改,EGit也会重新编制索引,导致整个系统变慢。 事实上,即使git的命令行是有点慢作为“混帐地位”大约需要命令行一分钟,但我可以用这个性能问题生活,例如:It &提交对话框缓慢的问题(link)。因为我可以使用git命令行进行提交和更新,但我不希望权衡我的Eclipse性能,因为这会影响生产力。建议对Eclipse的

下面是我做的谷歌搜索,并要求周围的人尝试:在排除文件

  1. 添加的所有文件夹类。确实尝试了将类文件夹放在.gitignore中以及暂时。
  2. 给予足够的时间让机器保持开启一天来完成索引。
  3. 在开发过程中,在Eclipse工作台中关闭了Git staging,历史和所有其他日食视图。
  4. “git gc” - 它在命令行性能上有所不同,但EGit几乎没有任何区别。
  5. 未检查Git的标签装饰器。首选项 - >常规 - >外观 - >标签装饰。
  6. 删除从路径cygwin的,因为在JGit可能使用的cygwin的路径转换论坛某处读取。
  7. Eclipse中的窗口高速缓存从10增加到70m(首选项 - >团队 - > Git - >窗口高速缓存)。

PS:Git仓库指向svn的远程存储库。另外,我是git新手,所以在安装时可能会犯一些错误,所以请随时指出任何事情。

这里是我的系统信息,我没有太多花哨的硬件规格,但有些RAM不遗余力(8GB)。

  • 混帐GUI版本0.16 GITGUID
  • Git版本:1.7.10.mysysgit.1
  • JDK 1.6_025
  • Eclipse版本:3.7.2 Java EE版本与参数-Xms1536m -Xmx1536m
  • 例如:It:1.3.0.201202151440
  • Windows 7处理器:酷睿2 2.6GHZ

回答

0

这是CVCS(集中式VCS)和DVCS(分布式)VCS之间的问题:

  • 一个SVN回购可以包含GB值的数据。
  • 一个Git回购应保持较小,并且利用submodules为了表示通过多个GIT中回购。

我怀疑很多回购可能比一个巨大的Git回购表现更好。否则,同步问题开始发生,如bug 323839

但是,这意味着手动管理的(简化的)GIT中回购之间和所述一个SVN回购同步,通过从你从到yourGit回购复制一个SVN的工作区,或者要复制GIT中回购新演进回SVN工作区中提交。

+1

VonC - 同意,但有一些问题,例如:It与实施是肯定的,因为同样大的混帐回购协议执行在Linux上盒用的IntelliJ)相当不错,虽然我同意的Linux文件系统都快得多。那么,我可以创建一个是SVN克隆的中央Git回购,然后从巨型中央Git回购有多个小Git回购吗? – Hemant 2012-04-24 06:29:39

+0

@Hemant不,你不能(不可能回复SVN回购)。您可以定义一个Git仓库,将所有小型仓库声明为子仓库,但不会与SVN仓库建立任何关联。这留下了手动同步机制。 – VonC 2012-04-24 06:51:01

+0

Vonc - 谢谢你澄清它。我会继续探索我的选择......我也希望Egit团队能够更快地进行一些性能调整。 – Hemant 2012-04-24 16:57:06

3

这可能是不太你的问题,但这个页面出现在谷歌相对于例如:It性能。 一旦性能问题的来源未跟踪(索引?)文件。 确保本地目录树中没有大量未跟踪的文件,因为这会严重影响性能。我删除了一个拥有10K +文件的导演,并且提交性能从花费1分钟以上打开提交对话框花了几秒钟。

+0

我的仓库中没有任何未跟踪的文件。我正在处理大约有28k Java文件和136k提交的大型存储库,但其中大多数应该已经打包好了。 – Hemant 2012-11-21 22:38:57

+0

尝试克隆'git:// git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git'。 Linux内核签出约有45k文件,内核的提交方式超过300k。一个28k文件和136k提交的回购是一个大回合,并不是很大。 – 2014-07-11 12:25:08

+0

对于一个巨大的回购,请尝试克隆'https:// github.com/mozilla/gecko-dev.git'。克隆将需要通过单独的线路传输大约1.5GB的数据... – 2014-07-11 12:39:03