同一台计算机上的两个Cygwin安装之间的性能差异很大

时间:2019-04-16 08:38:34

标签: performance cygwin babun

我花了很长时间试图找出这个难题。当涉及到Cygwin缓慢时,我已经排除了通常的怀疑。我有两个不同的Cygwin装置,它们的性能截然不同。下面将其量化为“前叉性能”以及执行git difftool操作的时间。

有人可以建议我接下来看什么吗?快速的cygwin安装非常有用,但是我现在需要一些最新的软件包,并且任何安装尝试,例如python 3.x都会导致整个安装升级(并因此降低了:()的速度。

效果差异摘要

+---------------------------+----------------+-----------------+----------------------+
|           Desc            | Version1(Fast) | Version2(Slow)  | Git Bash for Windows |
+---------------------------+----------------+-----------------+----------------------+
| git difftool (System CPU) | 15%            | 69%             |                      |
| git difftool (Total Time) | 3.284s         | 10.549s         | 0.46s                |
| fork performance          | ~15            | ~10             | ~22 (!!)             |
+---------------------------+----------------+-----------------+----------------------+

正在比较的Cygwin安装说明

版本1 (以下称为“ V1” ):这是Babun Cygwin v 1.2.0(最新的稳定版本)。请注意,babun本身已被废弃,因此此版本的Cygwin(64位)已过时。

版本2 (以下称为“ V2” ):这是许多不同的事情:

  1. 使用cygwin setup.exe将V1升级到最新版本
  2. 全新安装的Babun v 1.2.0(是,与V1相同!)
  3. 全新安装的cygwin 64位
  4. 每晚重新安装Babun(从http://40.114.204.90起,我没有从中创建Babun的派发包的方便工具)

通常的嫌疑人被排除在外

问题在于,对于git操作,Version1至少快3倍,并且比同一台计算机上的Version2 快50%。我已经看过SO和其他地方的“ Slow Cygwin”帖子,实际上我可以找到任何东西。这包括:

  1. 排除所有BLODA software(查看过BLODA列表,并尝试使用CYGWIN=detect_bloda打开cygwin,这丝毫没有令人惊讶。在此之前很早就发现ConEmuHK注入是一个问题,我已经另外,为了排除所有类似的测试,所有这些测试都使用了核心Shell可执行文件(zsh.exe)或使用mintty.exe而没有像Conemu这样的顶部封装程序完成。
  2. 使用strace比较V1和V2正在加载的DLL。显然,特定于cygwin的DLL是不同的,但是非Cygwin DLL的列表是相同的。
  3. 我还尝试了从V1(快速)-> V2(缓慢)以大块方式复制Cygwin DLL,并在每次复制操作后执行rebaseall。
  4. 我还试图找出在创建便携式Cygwin安装时Babun是否有特定的功能
  5. 我的PATH很小。路径上没有什么是网络共享

    /usr/local/bin
    /usr/local/sbin
    /usr/bin
    /cygdrive/c/WINDOWS/system32
    /cygdrive/c/WINDOWS
    /cygdrive/c/WINDOWS/System32/Wbem```
    
  6. 通过创建静态/etc/passwd/etc/group并配置/etc/nsswitch.conf来解决LDAP问题,如下所示:
    enter image description here


详细的性能统计信息

有关性能差异的详细信息如下。

版本1-性能

? babun --version
babun version 1.2.0
Created and maintained by Tom Bujok (@tombujok)
Copyright (c) 2014-2015.

~
? while (true); do date --utc; done | uniq -c
 11 Tue, Apr 16, 2019  8:16:43 AM
 13 Tue, Apr 16, 2019  8:16:44 AM
 13 Tue, Apr 16, 2019  8:16:45 AM
 14 Tue, Apr 16, 2019  8:16:46 AM
 14 Tue, Apr 16, 2019  8:16:47 AM
 15 Tue, Apr 16, 2019  8:16:48 AM
 14 Tue, Apr 16, 2019  8:16:49 AM
 13 Tue, Apr 16, 2019  8:16:50 AM
 14 Tue, Apr 16, 2019  8:16:51 AM
 13 Tue, Apr 16, 2019  8:16:52 AM
 13 Tue, Apr 16, 2019  8:16:53 AM
 12 Tue, Apr 16, 2019  8:16:54 AM
 14 Tue, Apr 16, 2019  8:16:55 AM
 13 Tue, Apr 16, 2019  8:16:56 AM
 14 Tue, Apr 16, 2019  8:16:57 AM

❯ time git -C ~/some-git-repo difftool "HEAD~^\!"
0.10s user 0.40s system 15% cpu 3.284 total

版本2-性能

截至本文发布时,最新的Cygwin 64位

❯ time git -C ~/some-git-repo difftool "HEAD~^\!"
0.14s user 7.17s system 69% cpu 10.549 total

? while (true); do date --utc; done | uniq -c
      4 Tue, Apr 16, 2019  8:21:25 AM
     10 Tue, Apr 16, 2019  8:21:26 AM
      9 Tue, Apr 16, 2019  8:21:27 AM
     10 Tue, Apr 16, 2019  8:21:28 AM
     10 Tue, Apr 16, 2019  8:21:29 AM
     10 Tue, Apr 16, 2019  8:21:30 AM
     10 Tue, Apr 16, 2019  8:21:31 AM
     10 Tue, Apr 16, 2019  8:21:32 AM
     10 Tue, Apr 16, 2019  8:21:33 AM
     10 Tue, Apr 16, 2019  8:21:34 AM
      9 Tue, Apr 16, 2019  8:21:35 AM
     10 Tue, Apr 16, 2019  8:21:36 AM

0 个答案:

没有答案