gpt4 book ai didi

c# - 第一次打开应用程序时应用程序变慢

转载 作者:行者123 更新时间:2023-11-30 14:31:36 25 4
gpt4 key购买 nike

我使用 C# 在 ASP.NET 中开发了一个应用程序。整个应用程序工作正常但问题是当我第一次打开应用程序时它运行非常慢。即加载主页或任何其他页面等页面需要花费大量时间。但是当我重新打开该页面时,该页面会像我预期的那样快速打开。即使每当应用程序获取 session 过期并重新登录到应用程序时,它也会再次花费很多时间来第一次加载所有页面,而从第二次打开该页面它不会发生。那么谁能告诉我这里发生的问题是什么。

最佳答案

应用程序在第一次请求时编译。

阅读this微软的文章。

Because ASP.NET compiles your Web site on first user request, you can simply copy your application's source code to the production Web server. However, ASP.NET also provides precompilation options that allow you to compile your Web site before it has been deployed, or to compile it after it has been deployed but before a user requests it. Precompilation has several advantages. It can improve the performance of your Web site on first request because there will be no lag time while ASP.NET compiles the site. Precompiling can also help you find errors that might otherwise be found only when a user requests a page. Finally, if you precompile the Web site before you deploy it, you can deploy the assemblies instead of the source code.

您可以使用 ASP.NET 编译器工具 (ASPNET_Compiler.exe) 预编译网站。提供以下预编译选项的工具:

  1. 就地编译 此选项执行与动态编译期间发生的相同的编译。使用此选项编译已部署到生产服务器的网站。
  2. 不可更新的完整预编译 使用它来编译应用程序,然后将编译后的输出复制到生产服务器。所有应用程序代码、标记和 UI 代码都编译成程序集。 .aspx 页面等占位符文件仍然存在,以便您可以执行特定于文件的任务,例如配置权限,但这些文件不包含可更新的代码。为了更新任何页面或任何代码,您必须再次预编译网站并再次部署。
  3. 可更新预编译 这类似于不可更新的完整预编译,只是 .aspx 页面和 .ascx 控件等 UI 元素会保留其所有标记、UI 代码和内联代码(如果有)。您可以在部署后更新文件中的代码; ASP.NET 将检测文件的更改并重新编译它。请注意,代码隐藏文件(.vb 或 .cs 文件)中的代码在预编译期间内置到程序集中,因此您无法在不再次执行预编译和部署步骤的情况下更改它。

但是,您提到如果 session 过期,它也会变慢。也许您在 session 开始时将太多内容加载到内存中。没有更多信息很难做出诊断。

关于c# - 第一次打开应用程序时应用程序变慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19831270/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com