我将代码部署到Windows Server 2016上的IIS,并且试图了解在“发布/设置/目标运行时”下拉列表中选择Portable
与win-x64
之间的有效区别。
由于JIT需要将代码编译为特定的体系结构,因此该网站在可移植性下启动需要花费更长的时间吗?还有别的事吗?
答案 0 :(得分:1)
编辑-简短答案
如果选择 <AreaClosed
data={stock}
x={d => xScale(xStock(d))}
y={d => yScale(yStock(d))}
yScale={yScale}
strokeWidth={1}
stroke={'url(#gradient)'}
fill={'url(#gradient)'}
curve={curveMonotoneX}
/>
,则每次启动应用程序时,都需要对应用程序实际执行的部分进行JIT编译。如果您的应用程序很大,则性能可能会受到影响。
如果您选择portable
,则应用程序将不会因为编译过程而减慢速度,因为在构建计算机(您的便携式计算机)上的发布过程已经完成了该操作。
原始答案
选择x64
发布选项时,您将获得一个能够在x86(32位)计算机和x64(64位)计算机上运行的软件包。选中可移植选项后,在应用程序启动时,随着应用程序保持运行,您将获得目标计算机(x64或x86)的JIT编译代码。但是,如果应用程序关闭,所有JIT编译的代码将丢失。编译后的代码位于内存中,直到应用程序进程结束。下次运行时,必须在使用JIT时再次对其进行编译。这样做的好处是您只需要分发一个程序包,即可在两台x86 / x64机器上运行。
另一种方法是生成多个程序包,但是对于要在其上分发应用程序的每个目标平台一个程序包。在这种情况下,您将获得已经编译的特定于计算机的程序包,即使在应用程序过程结束并稍后重新启动后,也不需要重新编译。在这种情况下,由于编译仅在构建服务器/机器上完成一次,因此您的应用程序运行速度似乎更快。但是,它确实会影响您的部署样式。
有关.NET运行时标识符的更多信息,请参见:https://docs.microsoft.com/en-us/dotnet/core/rid-catalog
关于JIT编译代码的好文档在这里:https://www.telerik.com/blogs/understanding-net-just-in-time-compilation