我们有一个WinForms应用程序,它刚刚部署为基于.NET4 / vs2012构建的64位构建(64位而不是任何cpu)。
当部署到citrix时,服务器团队建议一个表单需要30秒以上才能打开并使用近500mb的内存。打开并显示后,内存将被释放,然后应用程序只需使用大约30mb。
我在本地计算机上运行此代码,它表现出相同的行为。
如果我关闭表单并立即重新打开它。
这种形式不会发生任何奇怪的事情 - 这是令人困惑的大量记忆。
但是,如果我在visual studio中运行代码,它就不会这样做。表格几乎立即显示。
我已经完成了代码,据我所知,它没有做任何不寻常的事情。它没有对数据库进行任何调用,我认为这可能导致问题或尝试访问外部服务或任何奇怪的事情。
如果只是在Citrix下进行,我认为那里有一些东西,但它也是我的本地机器(Windows 7 x64 pro)
有什么建议吗?
答案 0 :(得分:0)
我在NET4.5 / VS2013上遇到了类似的问题与一个中等复杂的WinForms程序。它几乎瞬间加载到DevEnv中,但是从exe运行时需要大约60秒才能加载。在此期间,它占用了大约1.2GB的内存并消耗了大约15%的CPU资源。加载后,它的内存消耗降至~22 MB。如果我在“编译选项”页面上检查“首选32位”选项(使用AnyCPU for Target CPU),问题就会消失,可执行文件加载速度非常快。我不知道为什么会这样,但是嘿它有效!