gpt4 book ai didi

asp.net - Assembly.GetExecutingAssembly() 性能

转载 作者:行者123 更新时间:2023-12-01 08:35:36 31 4
gpt4 key购买 nike

我正在研究创建一种自动方式来检查我们系统的运行版本。每当我们发布代码进行测试时,我们的版本都在使用

[assembly: AssemblyVersion("1.21.0.13329")]
[assembly: AssemblyFileVersion("1.21.0.13329")]

我现在想扩展我们的 ASP.Net 网页表单 网络服务以显示此版本号。因此,Web 表单应用程序会将其放在主页上的某个位置,而 Web 服务可能会有一个返回版本号的 Web 方法。

我正在考虑使用
Version version = Assembly.GetExecutingAssembly().GetName().Version;

去做这个。但我担心,因为这是使用反射,它可能会给我的代码增加性能开销。它可能会被多次调用,尤其是在主页上,我不希望这会降低响应时间。

我有另一个解决方案,所以我不需要替代方案,我只想知道是否有人知道这的性能开销是否会相对显着?

最佳答案

性能开销以及它是否重要的​​问题实际上取决于它的访问量。在单个页面点击时,可能不是 - 代码执行时间以几毫秒为单位。如果服务器负载过重,点击次数很多,很有可能。

但是你不能只命中一次吗(即仍然使用反射,但不是每次都使用):

我假设这在 Web 应用程序实例的整个生命周期中都不会改变 - 那么为什么不一次捕获此信息并存储它呢?

也许创建一个类来捕获它,例如:

public class AppVersion
{
private static readonly Version _applicationVersion = Assembly.GetExecutingAssembly().GetName().Version;

public static Version ApplicationVersion
{
get { return _applicationVersion; }
}
}

您现在可以通过以下方式在代码中访问它:
var version = AppVersion.ApplicationVersion

关于asp.net - Assembly.GetExecutingAssembly() 性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11031233/

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