我正在帮助修复旧的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)的运行速度和可执行文件一样快,所以看起来似乎是调试模式开销。
答案 0 :(得分:4)
在Visual Studio中以调试模式运行的应用程序在与VS的调试器通信时会遇到很多开销。记录它们的输出,状态和事件,这会降低速度。
我在进化计算中运行实验时经历了一段时间。我首先从visual studio启动控制台应用程序,直接从文件系统启动创建新实例。从文件系统启动的那些将运行得更快,甚至超过在VS调试模式下启动的那个。
尝试用它来冷静。调试模式总是较慢。如果您想要的是速度,我建议构建项目,然后直接从文件系统启动它。
答案 1 :(得分:1)
造成这种差异的原因是默认情况下,所有代码优化都在调试模式下关闭。这是因为当二进制代码与源代码直接对应时,调试更容易。