最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Unity3D實(shí)驗(yàn)室之iOS真機(jī)閃退的解決方法

 更新時(shí)間:2018年02月02日 09:35:53   作者:koo叔  
下面小編就為大家分享一篇Unity3D實(shí)驗(yàn)室之iOS真機(jī)閃退的解決方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧

問題的產(chǎn)生

這個(gè)問題一般發(fā)生在項(xiàng)目比較大,OO使用良好,泛型繼承用的較多的時(shí)候。第一次真機(jī)測試時(shí),項(xiàng)目終于進(jìn)入真機(jī)測試階段,之前都是在Unity編輯環(huán)境下開發(fā)測試,運(yùn)行的都很良好,信心滿滿的打包安裝,結(jié)果閃退。。。,各種代碼調(diào)試,跟蹤都沒什么線索。這怎么辦?問題很可能出在了AOT的設(shè)置上。

解決方案

這個(gè)通常是因?yàn)槟愕某绦蚓幾g的時(shí)候給 trampoline 分配的空間太小,而你的程序中又大量使用了泛型、泛型方法調(diào)用和接口實(shí)現(xiàn)導(dǎo)致的。具體的解決方法就是在 Unity3D 的編譯選項(xiàng) Player Setting 中有一個(gè) AOT Compilation Options 條目,在這個(gè)選項(xiàng)條目中加上以下編譯參數(shù)就好了

nrgctx-trampolines=8192,nimt-trampolines=8192,ntrampolines=4096

加上以后,重新打包測試,看還有沒有問題

參數(shù)意思

關(guān)于上面的三個(gè)參數(shù)的意思分別如下:

nrgctx-trampolines=8192 這是留給遞歸泛型使用的空間,默認(rèn)是 1024

nimt-trampolines=8192 這是留給接口使用的空間,默認(rèn)是 128

ntrampolines=4096 這是留給泛型方法調(diào)用使用的空間,默認(rèn)是 1024

什么是trampoline

Trampoline 是一些手寫的非常短小的用來在 Mono Runtime中執(zhí)行很多操作的Component Code。主要是通過 JIT 使用到的本地代碼宏在運(yùn)行時(shí)動(dòng)態(tài)生成的。它們通常都有與之相對(duì)應(yīng)的 C 方法,在某些較為復(fù)雜的場景中,當(dāng) trampoline 無法勝任時(shí),mono 運(yùn)行時(shí)就會(huì)將這些復(fù)雜的操作交回給這些對(duì)應(yīng)的 C 方法來執(zhí)行。這也可以看作是將 JIT 代碼的執(zhí)行權(quán)交回給 runtime 的一種方式。

這看起來明顯是為了提高 mono runtime 在執(zhí)行 C#代碼時(shí)候的效率,但還是有點(diǎn)不明白。

再來看看官方文檔關(guān)于 JIT Trampolines 和 AOT Trampolines 的介紹:

JIT Trampolines 這些 Trampoline 主要是 JIT 在首次調(diào)用某個(gè)方法的時(shí)候編譯方法用的。當(dāng) JIT 在編譯一個(gè)方法調(diào)用指令時(shí),它并不會(huì)立刻就編譯這個(gè)被調(diào)用到的方法。實(shí)際上,它會(huì)先創(chuàng)建一個(gè) JIT Trampoline,同時(shí)創(chuàng)建一個(gè)指向這個(gè) trampoline 的調(diào)用指令。當(dāng)這個(gè) JIT Trampoline 在調(diào)用到的時(shí)候,它會(huì)再調(diào)用 mono_magic_trampoline() 方法來編譯這個(gè) trampoline 實(shí)際指向的目標(biāo)方法,然后將編譯后的方法的指針地址返回給這個(gè)指向它的 trampoline。這個(gè)過程呢稍微有點(diǎn)慢,所以呢,mono_magic_trampoline() 方法會(huì)優(yōu)化調(diào)用 JIT 代碼的過程,它會(huì)先嘗試調(diào)用已經(jīng)通過 JIT 編譯過的方法而不是立即通過 trampoline 直接進(jìn)行調(diào)用。這些都是通過在 tramp-.c 文件中的 mono_patch_callsiete() 方法來完成的。

AOT Trampolines

AOT Trampolines 和 JIT Trampolines 非常相似,但是 AOT Trampolines 接受的編譯參數(shù)不是一個(gè) Mono 方法而是一個(gè) image+token 對(duì)。如果傳入的用于編譯的 image+token 對(duì)所指向的方法已經(jīng)經(jīng)過 AOT 編譯過了,那么再次編譯這個(gè) image+token 對(duì)時(shí),就會(huì)直接返回這個(gè)已編譯方法的指針地址而不需要再次加載這個(gè)方法的元數(shù)據(jù)進(jìn)行再次編譯了。

IMT Trampolines也是用于優(yōu)化接口調(diào)用效率的。

Trampolines 存在的價(jià)值就是為了減少 C#代碼在 mono runtime 中運(yùn)行時(shí)的性能損耗,提高 C#代碼的執(zhí)行效率。

總結(jié)

當(dāng)遇到類似問題時(shí)可以試試上面的方法。

以上這篇Unity3D實(shí)驗(yàn)室之iOS真機(jī)閃退的解決方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • iOS中屏幕亮度與閃光燈控制詳解

    iOS中屏幕亮度與閃光燈控制詳解

    這篇文章主要給大家介紹了關(guān)于iOS中屏幕亮度與閃光燈控制的相關(guān)資料,文中介紹的非常詳細(xì),對(duì)大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起看看吧。
    2017-06-06
  • 解決iOS調(diào)起微信支付顯示系統(tǒng)繁忙問題

    解決iOS調(diào)起微信支付顯示系統(tǒng)繁忙問題

    這篇文章主要介紹了解決iOS調(diào)起微信支付顯示系統(tǒng)繁忙問題,需要的朋友可以參考下
    2016-12-12
  • ios開發(fā)中時(shí)間轉(zhuǎn)換的方法集錦

    ios開發(fā)中時(shí)間轉(zhuǎn)換的方法集錦

    這篇文章主要介紹了ios開發(fā)中時(shí)間轉(zhuǎn)換的方法集錦,需要的朋友可以參考下
    2015-05-05
  • UIMenuController在Cell內(nèi)部無法顯示的解決辦法(iOS9.2)

    UIMenuController在Cell內(nèi)部無法顯示的解決辦法(iOS9.2)

    這篇文章主要為大家詳細(xì)介紹了UIMenuController在Cell內(nèi)部無法顯示的解決辦法,感興趣的小伙伴們可以參考一下
    2016-08-08
  • 詳解Xcode 9 設(shè)置 iOS無線真機(jī)調(diào)試

    詳解Xcode 9 設(shè)置 iOS無線真機(jī)調(diào)試

    本篇文章主要介紹了詳解Xcode 9 設(shè)置 iOS無線真機(jī)調(diào)試,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-12-12
  • iOS中的通知機(jī)制

    iOS中的通知機(jī)制

    網(wǎng)上經(jīng)常說iOS的通知機(jī)制是使用了觀察者模式,里面有兩個(gè)角色,其一是poster(發(fā)送者),另一個(gè)是observer(接受信息的訂閱者)。接下來通過本文給大家介紹iOS中的通知機(jī)制,感興趣的朋友一起學(xué)習(xí)吧
    2016-04-04
  • iOS中sqlite的詳細(xì)用法

    iOS中sqlite的詳細(xì)用法

    在iOS中,也同樣支持sqlite。目前有很多第三方庫,封裝了sqlite操作,比如swift語言寫的SQLite.swift,對(duì)sqlite感興趣的小伙伴們可以參考一下
    2016-05-05
  • 刪除xcode 中過期的描述性文件方法

    刪除xcode 中過期的描述性文件方法

    下面小編就為大家分享一篇?jiǎng)h除xcode 中過期的描述性文件方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-01-01
  • iOS實(shí)現(xiàn)簡單計(jì)算器小功能

    iOS實(shí)現(xiàn)簡單計(jì)算器小功能

    這篇文章主要為大家詳細(xì)介紹了iOS實(shí)現(xiàn)簡單計(jì)算器功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • IOS代碼筆記之仿電子書書架效果

    IOS代碼筆記之仿電子書書架效果

    這篇文章主要為大家詳細(xì)介紹了IOS仿電子書書架效果的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-07-07

最新評(píng)論

英山县| 襄城县| 金坛市| 夏河县| 瑞安市| 桓台县| 南溪县| 博乐市| 新巴尔虎右旗| 安义县| 济阳县| 竹山县| 泰兴市| 长海县| 安远县| 沅陵县| 长沙县| 大厂| 绥芬河市| 平昌县| 阿克苏市| 佛教| 桐城市| 青岛市| 林周县| 白水县| 内乡县| 伊金霍洛旗| 玉树县| 湾仔区| 永善县| 犍为县| 新建县| 射阳县| 南部县| 阿拉善盟| 陇川县| 苏尼特左旗| 南京市| 剑阁县| 囊谦县|