真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

.NET4.6的RyuJIT編譯器中的Bug實(shí)例分析

這篇文章主要為大家分析了.NET 4.6的RyuJIT編譯器中的Bug實(shí)例分析的相關(guān)知識(shí)點(diǎn),內(nèi)容詳細(xì)易懂,操作細(xì)節(jié)合理,具有一定參考價(jià)值。如果感興趣的話,不妨跟著跟隨小編一起來(lái)看看,下面跟著小編一起深入學(xué)習(xí)“.NET 4.6的RyuJIT編譯器中的Bug實(shí)例分析”的知識(shí)吧。

創(chuàng)新互聯(lián)公司長(zhǎng)期為上千余家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺(tái),與合作伙伴共同營(yíng)造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為雙流企業(yè)提供專業(yè)的網(wǎng)站設(shè)計(jì)制作、成都做網(wǎng)站,雙流網(wǎng)站改版等技術(shù)服務(wù)。擁有10余年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開發(fā)。

在.NET 4.6的RyuJIT編譯器中又發(fā)現(xiàn)了兩個(gè)嚴(yán)重的bug,開發(fā)者Andrey Akinshin已經(jīng)將第一個(gè)bug記錄下來(lái),并提供了以C#編寫的概念驗(yàn)證式代碼以解釋其中的問(wèn)題。而正是StackOverflow上的一名用戶“BrandonAGr”在網(wǎng)站上的留言啟發(fā)Akinshin編寫了這段代碼。

Akinshin在示例中使用了可空的布爾類型,它展示了當(dāng)RyuJIT在試圖生成優(yōu)化代碼時(shí)導(dǎo)致所生成的程序集出錯(cuò)的情況。從這個(gè)示例的運(yùn)行結(jié)果來(lái)看,它在首次運(yùn)行時(shí)會(huì)產(chǎn)生錯(cuò)誤,而第二次運(yùn)行時(shí)卻一切正常,這一點(diǎn)更令人頭疼。Akinshin在總結(jié)中說(shuō)道:“RyuJIT似乎存在著一個(gè)相當(dāng)棘手的優(yōu)化bug,這個(gè)bug的產(chǎn)生依賴于大量的附加條件,而對(duì)于源代碼的每次修改都會(huì)破壞它的可重現(xiàn)性?!?/p>

所幸來(lái)自微軟的開發(fā)者“schellap”已經(jīng)為這一錯(cuò)誤提交了一個(gè)修復(fù),但就像本周早先所報(bào)告的問(wèn)題一樣,目前還沒(méi)有發(fā)布任何二進(jìn)制的補(bǔ)丁包。使用者對(duì)于RyuJIT目前的現(xiàn)狀表示了他們的挫折感與憂慮。用戶“EasmoneNerbonne”認(rèn)為,根據(jù)所報(bào)告的bug情況來(lái)看,“……看起來(lái),最好的做法是在近期全面停止使用[RyuJIT],而不僅僅是禁用尾調(diào)用功能而已。” Akinshin對(duì)此也表示了贊同。而用戶Daniel Marbach也說(shuō)道:“……那篇介紹RyuJIT的博客應(yīng)當(dāng)更新一下這些bug的情況,并且微軟應(yīng)該發(fā)布一篇公開聲明,清楚地說(shuō)明:不要在生產(chǎn)環(huán)境中使用RyuJIT?!保ㄔ募匆源髮懕硎緩?qiáng)調(diào))

第二個(gè)bug是由GitHub用戶Hyunho Richard Lee所報(bào)告的,他通過(guò)一段F#代碼的示例展現(xiàn)了這個(gè)bug:原本應(yīng)該正常運(yùn)行的程序卻產(chǎn)生了錯(cuò)誤(拋出FatalExecutionEngineError異常)。按照Lee的說(shuō)法,對(duì)于能夠正常運(yùn)行的、以.NET 4.5.1(或4.5、4.5.2)為目標(biāo)的F# 3.1程序,在安裝.NET 4.6 RC后就會(huì)產(chǎn)生問(wèn)題。

Lee為F#開發(fā)者總結(jié)了這個(gè)問(wèn)題:

如果F#開發(fā)者在現(xiàn)有應(yīng)用的任何一處代碼中,對(duì)于KeyValuePair類型的Seq執(zhí)行了Seq.distinct方法,那么他們必須對(duì)運(yùn)行環(huán)境加以控制,確保部署環(huán)境中沒(méi)有安裝.NET 4.6。另一種做法是立即重新設(shè)置項(xiàng)目的目標(biāo),隨后立即重新部署這些項(xiàng)目。

微軟的開發(fā)者sivarv暗示這個(gè)問(wèn)題已經(jīng)在一個(gè)提交中得以修復(fù),但正如上文所述,目前還沒(méi)有公開宣布任何二進(jìn)制補(bǔ)丁包的發(fā)布日期。

關(guān)于“.NET 4.6的RyuJIT編譯器中的Bug實(shí)例分析”就介紹到這了,更多相關(guān)內(nèi)容可以搜索創(chuàng)新互聯(lián)以前的文章,希望能夠幫助大家答疑解惑,請(qǐng)多多支持創(chuàng)新互聯(lián)網(wǎng)站!


標(biāo)題名稱:.NET4.6的RyuJIT編譯器中的Bug實(shí)例分析
文章來(lái)源:http://weahome.cn/article/psopph.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部