【发布时间】:2021-12-27 06:49:34
【问题描述】:
我正在尝试帮助 SuperCollider community 尝试了解我们如何防止 Windows Defender 在最新的 Windows 10 上延迟执行其中一个可执行文件。
original github issue can be found on github。
这是测试用例:
download the latest version of SuperCollider for Windows x64 (3.10.3)
安装它
重启电脑
打开“cmd”并启动
scsynth.exe
cd "\Program Files\SuperCollider-3.10.3"
scsynth.exe -u 57110
您必须等待 50 到 60 秒才能看到 scsynth 输出,该输出应该以类似
的内容开头Device options:
- MME : Mappeur de sons Microsoft - Input (device #0 with 2 ins 0 outs)
[...]
SuperCollider 3 server ready.
请注意,如果您退出
scsynth.exe并再次运行该命令,scsynth.exe会立即启动,不会有任何延迟现在将
scsynth.exeprocess 放入 Windows Defender 排除列表(有关如何访问此排除列表的信息,请参阅 this article)重启
打开“cmd”并启动
scsynth.exe
cd "\Program Files\SuperCollider-3.10.3"
scsynth.exe -u 57110
现在scsynth.exe 马上开始。
此行为在添加 Windows Defender block at first sight 功能时开始。
这给 SuperCollider Windows 用户带来了很多问题。
谁能帮我们解决这个问题?
【问题讨论】:
-
我曾经使用 Process Monitor(来自 Sysinternals/Microsoft)等工具来调查此类问题。它可以记录进程正在执行的所有 i/o、注册表以及进程和线程操作。比较这两种情况的日志可以让您很好地了解其他程序可能如何干扰。现在,我通过 UIforETW 使用 ETW(Windows 事件跟踪)来记录跟踪,然后使用 Windows 性能分析器对其进行分析。同样的处理还有更多细节需要深入研究。
-
谢谢阿德里安,我会试着弄清楚这些工具发生了什么。
-
并非如此。这是 Windows Defender 的一个众所周知的问题。他们在最新版本的 SC 中添加了警告。它只发生在第一次库类编译时。它需要例如在我的机器上需要 20 秒,而重新编译需要 1-2 秒。索引帮助文件也是如此。 Windows Defender 有一些特殊的技巧可以避免像这个商业软件那样减速(即地狱白名单)。请参阅关于 Rust 的讨论youtu.be/qbKGw8MQ0i8?t=2326。基本上,MS 需要轻轻地请求将 SC 列入白名单。
-
在更精简的安装中(没有太多额外的夸克/插件),866 个 SC 类文件在第一次编译时需要 10 秒。每个文件几乎正好 12 毫秒,就像那个 Rust 家伙的谈话一样......而且编译后的帮助文件被写入
C:\Users\<YourUserName>\AppData\Local\SuperCollider,因此也需要排除它以更快地启动 sclang。 -
谢谢@fizz!我在最新版本的 SC 中添加了警告 :) 如果有人知道请求 MS 将 SC 添加到白名单的程序,我在!
标签: windows supercollider windows-defender