.net - 使用即时编译验证 .NET CLR 优化的代码路径?
问题描述
为无益的标题道歉,我不确定我是否真的理解我所要求的正在发生。我对 CLR 和 JIT 做了什么或如何检查它是否在做我认为应该做的事情知之甚少,令人尴尬。
假设我有以下方法:
void DoSomething(bool log) {
for (int i=0; i< 1000000; i++) {
if (log) {
Console.WriteLine(i);
}
Console.WriteLine(i*2);
}
}
现在,如果我的方法调用是DoSomething(false)
,CLR/JIT 会知道不检查if (log)
100,000 次吗?基本上,它会自动将其转换为:
void DoSomething_noLog() {
for (int i=0; i< 1000000; i++) {
Console.WriteLine(i*2);
}
}
如果它确实知道自动执行此操作,我如何验证它确实在执行此操作?
解决方案
推荐阅读
- scala - 带有 PEM 文件的 Kafka Producer 的 TLS 设置
- laravel - Laravel fortify 注册后未设置 status=verification-link-sent
- ios - 决定如何在 UITableView 中显示事件日历的 DATA
- javascript - 为什么我收到错误:错误 [ERR_STREAM_WRITE_AFTER_END]:从 AWS S3 下载多个图像时在结束后写入?
- android - 如何在 Paging3 中使用自定义 PagingSource 和 RemoteMediator 加载数据?
- ios - AWS Cognito 组通过 Amplify (swift)
- android-studio - 如何将 GetIntent 数据从 Activity 传递到 ViewModel
- alpine - 如何在不更改启动时安装的软件包列表的情况下安装软件包?
- sapb1 - SAP B1 的 CCC:同步插件时,错误:解析 ard 文件失败
- c# - 验证消息仅适用于所有非特定型号