精品国产一级在线观看,国产成人综合久久精品亚洲,免费一级欧美大片在线观看

Angular AOT編譯大型項目出現內存溢出瓶頸

責任編輯:editor006

作者:周元昊

2017-08-10 15:47:16

摘自:INFOQ

在今年年初,有用戶指出在使用Angular-cli對大型項目進行AOT編譯時遇到內存溢出(OOM)的情況,導致編譯失敗。Angular的AOT編譯會進行代碼靜態分析、無用代碼及依賴的剪枝、縮小代碼體積等一系列優化,這個過程勢必會消耗一定時間。

自2.0版本起,Angular就已支持了AOT(Ahead-of-time)編譯,該功能在服務器端對代碼進行編譯,這可以免去標準的JIT(Just-in-time)方式每次都在瀏覽器運行時進行編譯的消耗,優化了客戶端的渲染速度及代碼的網絡傳輸效率。同時谷歌還推出了Angular-cli工具,進一步簡化了Angular項目的管理、編譯過程。

然而,在今年年初,有用戶指出在使用Angular-cli對大型項目進行AOT編譯時遇到內存溢出(OOM)的情況,導致編譯失敗。谷歌的Angular-cli工程師Hans表示,問題的原因是,在Angular-cli使用的Webpack插件中,路徑解析沒有很好地處理遞歸問題,從而導致大量內存占用,目前還沒有找到很好的解決方案。

Angular的AOT編譯會進行代碼靜態分析、無用代碼及依賴的剪枝、縮小代碼體積等一系列優化,這個過程勢必會消耗一定時間。該功能在帶來運行時性能提升的同時,拖慢了編譯速度,從而遭到不少用戶的吐槽。官方也建議,在開發過程中使用JIT的編譯方式,而只在正式發布時使用AOT編譯。

目前能夠暫時緩解內存溢出這一問題的方法是為其分配更多可用的內存,使編譯器能夠完成編譯,但這畢竟治標不治本,隨著項目的不斷增長,在可預見的將來還是會遇到同樣的問題。將獨立應用拆分成小型的模塊會是一個不錯的選擇,同時也有人提出投奔Vue、Ember或React等其他框架。

社區中已有不少用戶遇到了這個內存溢出的問題,并能夠成功將其重現,然而目前谷歌官方并沒有對該問題提出明確的解決方案,值得注意的是AngularDart并沒有出現類似情況。社區對該問題的出現產生了些許擔憂,Angular將來是否能很好地支持大型應用?谷歌最終會不會更傾向于推廣AngularDart?現在只能希望Angular在后續版本中針對該問題進行更好的性能優化。

鏈接已復制,快去分享吧

企業網版權所有?2010-2024 京ICP備09108050號-6京公網安備 11010502049343號

  • <menuitem id="jw4sk"></menuitem>

    1. <form id="jw4sk"><tbody id="jw4sk"><dfn id="jw4sk"></dfn></tbody></form>
      主站蜘蛛池模板: 突泉县| 涞源县| 乌鲁木齐县| 林州市| 德清县| 镇江市| 涟水县| 双鸭山市| 来凤县| 东平县| 温宿县| 黄梅县| 白沙| 霞浦县| 西和县| 望都县| 绍兴市| 荥阳市| 若尔盖县| 门源| 手游| 洮南市| 丰县| 福州市| 萍乡市| 五河县| 门头沟区| 壶关县| 府谷县| 云龙县| 红安县| 镇江市| 芜湖市| 双江| 电白县| 盐池县| 平谷区| 象山县| 庆元县| 依兰县| 静乐县|