Is running a Windows .EXE inherently slower via Cygwin than via BAT?
我们正在通过cygwin脚本运行windows.exe文件,遇到性能问题。我看过关于Cygwin性能问题的各种文章,包括这篇文章,其中一篇的答案深入探讨了Cygwin的内部结构,使我认为可能存在问题。然而,这些帖子似乎更多的是关于启动时间,标签完成等。在我们启动一个基准测试,巫婆狩猎,我希望问:有什么内在的原因,为什么一个Windows.exe可以运行较慢,如果从Cygwin与蝙蝠?
- 如果您看到高CPU负载,这可能意味着一个失控的线程,这可能是由程序中的错误以及Cygwin启动它的方式的某些差异造成的。
不是实际的程序,不是。
运行程序前的内务管理和工作可能会有所不同。命令可能直接调用CreateProcess。Cygwin的bash可以首先进行参数解析、通配符扩展、通过Cygwin的缓慢实现进行fork,并使用解析的参数调用exec,cygwin必须再次将这些参数拼成字符串才能传递给CreateProcess。但最终,一个新的进程被创建,它不再与父进程有任何联系。所以你的程序运行的速度完全取决于这个程序,而不是取决于谁启动了它。
- 没有区别,例如,标准手柄的设置方式?
- @哈里约翰斯顿:我不知道,但这只会影响输入和输出,而不是程序运行的速度,不是吗?
- 一般来说,是的,但是一个足够有缺陷的程序可能根据标准句柄的不同而表现不同。这不是我的第一次,甚至不是我的第二次猜测,但我不会完全排除在外。-)
- @哈里约翰斯顿:嗯,总是有这样的情况;-)。