WPF:App在Visual Studio调试模式下运行速度比可执行文件慢得多

时间:2015-10-13 10:02:21

标签: c# .net wpf visual-studio

我正在帮助修复旧的WPF应用程序的性能问题,我们遇到的一个主要问题是,如果从Visual Studio中以调试模式启动,应用程序运行速度要慢得多,而直接从/运行应用程序bin文件夹。

比较:

$('#formSendMail').submit(function (e) {
    var myEmail = {
        From: $('#MailFrom').val(),
        To: $('#MailTo').val(),
        Subject: $('#MailSubject').val(),
        MailBody: $('#MailBody').val()
    };

    $.ajax({
        type: "POST",
        url: '<%= Url.Action("SendEmail", "Messages") %>',
        data: JSON.stringify(myEmail),
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function (result) {
            alert("Mail envoyé.");
        },
        error: function (result) {
            alert("Echec lors de l'envoi du mail.");
        }
    });

    return false;
});

由于我的WPF知识非常基础,并且它不是我一直在研究的应用程序,我还不知道该寻找什么。

关于可能导致这种差异的任何建议?

PS:没有调试启动(Ctrl + F5)的运行速度和可执行文件一样快,所以看起来似乎是调试模式开销。

2 个答案:

答案 0 :(得分:4)

在Visual Studio中以调试模式运行的应用程序在与VS的调试器通信时会遇到很多开销。记录它们的输出,状态和事件,这会降低速度。

我在进化计算中运行实验时经历了一段时间。我首先从visual studio启动控制台应用程序,直接从文件系统启动创建新实例。从文件系统启动的那些将运行得更快,甚至超过在VS调试模式下启动的那个。

尝试用它来冷静。调试模式总是较慢。如果您想要的是速度,我建议构建项目,然后直接从文件系统启动它。

答案 1 :(得分:1)

造成这种差异的原因是默认情况下,所有代码优化都在调试模式下关闭。这是因为当二进制代码与源代码直接对应时,调试更容易。