首页 > 其他分享 >.Net8的快速JIT,分层编译,R2R的设置

.Net8的快速JIT,分层编译,R2R的设置

时间:2023-04-27 09:24:32浏览次数:50  
标签:编译 JIT 设置 Net8 快速 R2R

前言

本篇通过一些简单的JIT设置,比如快速JIT,适用于循环的快速 JIT,分层编译,R2R等核心内容设置,快速进入.Net8核心区域。


概括

1.快速JIT
什么是快速JIT,顾名思义,被Rosyln编译的.Net源码进行快速的机器码编译。这么做的目的是,提高编译的速度,但是降低了代码的性能和整体质量。适用于大型的编译项目和对于性能并没有太多要求的项目。

怎么设置呢?比如你项目名称为:TianXia。
可以通过修改你当前项路径:

TianXia/bin/Debug/net8.0/TianXia.runtimeconfig.json文件。在里面添加如下代码:

{
   "runtimeOptions": {
      "configProperties": {
         "System.Runtime.TieredCompilation.QuickJit": true
      }
   }
}

2.快速循环JIT
顾名思义,你的代码里面又循环的语句。那么这个JIT配置就是,你是否在这个循环的语句里面启用快速JIT,以便于更快速的编译这个循环语句。
这里你可以通过修改后缀名为.csproj的项目文件。用记事本打开它,然后写入以下语句:

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>   <TieredCompilationQuickJitForLoops>true</TieredCompilationQuickJitForLoops>
  </PropertyGroup>
</Project>

3.分层编译
分层编译在.Net8里面默认是打开的,理论上不需要你开启它。这里也看下它是如何配置的。
你可以按照自己的平台,添加以下环境变量:

# Windows
set DOTNET_TieredCompilation=1

# Powershell
$env:DOTNET_TieredCompilation="1"

# Unix
export DOTNET_TieredCompilation=1

4.R2R设置
R2R是判断当代码运行的时候,是否使用有预编译的代码,如果不是使用,则强制JIT编译,这里也看下它的设置:

set DOTNET_ReadyToRun=1

结尾

以上设置,在大型的.Net项目里面或者服务器项目里面会进行很好的优化和性能释放。
作者:江湖评谈
参考:
https://learn.microsoft.com/zh-cn/dotnet/core/runtime-config/
https://learn.microsoft.com/zh-cn/dotnet/core/runtime-config/compilation

image

标签:编译,JIT,设置,Net8,快速,R2R
From: https://www.cnblogs.com/tangyanzhi1111/p/17357991.html

相关文章

  • 装VMware后在主机找不到VMnet1和VMnet8问题
    安装完VMware后没有VMnet1和VMnet8在主机里面找不到VMnet1和VMnet8,在网上找了许多办法,该开的服务也开了,发现还是不行,索性,重新装一下装之前觉得麻烦,一直想找个办法,因为虚......
  • JIT即时编译器
    一、概念Java是编译与解释共存的语言,简单来说,字节码文件通过解释器进行一行一行解释执行,当虚拟机发现某个方法或代码块的运行特别频繁,就会把这些代码认定为“热点代码”(Ho......
  • 开源免费视频会议Jitsi-meet介绍
    JitsiMeet是基于WebRTC技术的开源语音、视频会议和即时消息服务Jitsi集合的一部分。通过JitsiMeet,你可以即刻主持群组视频通话(即视频会议),你甚至都不需要建立帐......
  • 发布 Net8预览版1(Announcing .NET 8 Preview 1)
    发布net8预览版1(Announcing.NET8Preview1)1.对Net持续看好,对未来更加充满信心。2.我主要关注Asp.NetCore.NET8中的新增功能What'snewin.NET8重大更新Br......
  • 一文详解 jitpack 多渠道maven库发布
    先说一下,为什么会有这篇文章?最初接触JitPack时,发现网络上大量涉及JitPack的教程不可用。通过两天的研究才搞明白:1.不同的gradle版本,gradleapi使用方式与JitPack配......
  • JVM解释器与JIT编译器如何并存?
    [1]JVM解释器  JVM设计的初衷仅仅只是为了满足Java程序实现跨平台特性,因此避免采用静态编译的方式直接生成本地机器指令,从而诞生了实现解释器在运行时采用逐行解释字节......
  • 分析JDK、JRE、JVM、JIT 四者的关系与在代码运行时扮演的角色
    [1]四者的简要介绍  ·​​JDK(JavaDevelopmentKit)​​是针对Java开发人员的产品,它包括了Java运行环境JRE、Java工具和Java基础类库;  ·​​JRE(JavaRuntime......
  • What are AOT & JIT Compiler
        Inthisarticle,wewillcoverjust-in-timeandahead-of-timecompilation.WewilllookatitinthecontextofanAngularproject,buttheprincip......
  • JIT寒假算法竞赛集训第七场动态规划入门
    动态规划入门本页面用到的网站:洛谷:https://www.luogu.com.cn/acwing:https://www.acwing.com/引入:斐波那契数列f[n]=1(n0||n1)f[n]=f[n-1]+f[n-2](n>1)递归:int......
  • android平台解释器+JIT+AOT代码执行学习
    dalvikJIT(Just-In-Time)JIT即时编译,即在代码运行时进行编译。对于dalvik虚拟机而言其检测到执行频率较高的函数时就会进行jit编译将其编译为本地机器码,这样下次此函数执行......