gpt4 book ai didi

.net - 在 .NET 中,空方法调用会被优化掉吗?

转载 作者:行者123 更新时间:2023-12-03 11:24:42 24 4
gpt4 key购买 nike

给定一个空的方法体,JIT 会优化调用吗(我知道 C# 编译器不会)。我将如何去发现?我应该使用哪些工具以及我应该在哪里寻找?

因为我确定会被问到,所以空方法的原因是预处理器指令。

@克里斯:
有道理,但它可以优化对方法的调用。因此该方法仍然存在,但可以删除对其的静态调用(或至少内联......)

@乔恩:
那只是告诉我语言编译器不做任何事情。我想我需要做的是通过 ngen 运行我的 dll 并查看程序集。

最佳答案

这章对 JIT 优化有很好的处理,在页面上搜索“方法为空”,大约是文章的一半 -

http://www.codeproject.com/KB/dotnet/JITOptimizations.aspx

显然,空方法确实通过内联实际上没有代码的内容得到了优化。

@Chris:我确实意识到这些方法仍将是二进制文件的一部分,并且这些是 JIT 优化:-)。在半相关的注释中,Scott Hanselman 有一篇关于在发布构建调用堆栈中内联的非常有趣的文章:

http://www.hanselman.com/blog/ReleaseISNOTDebug64bitOptimizationsAndCMethodInliningInReleaseBuildCallStacks.aspx

关于.net - 在 .NET 中,空方法调用会被优化掉吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11783/

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