iT邦幫忙

2022 iThome 鐵人賽

DAY 25
0
自我挑戰組

30天JavaScript自學挑戰系列 第 25

Day 25 直譯 v.s. 即時編譯

  • 分享至 

  • xImage
  •  

JavaScript在過去是一種單純的直譯語言,JavaScript interpreter運行source code並逐行執行,簡單來說就是同時讀取和執行所有的程式碼,而source code轉換成machine code的步驟僅僅是發生在執行程式碼之前,並非像編譯語言一樣,是提前將source code轉換成machine code再將其寫進一個可移植的文件中,而這個文件可以拿到任何電腦中執行,因此直譯語言相較於編譯語言來說,跑起來是相當慢的。

對於過去的JavaScript來說,使用直譯的方式並沒什麼問題,但對現代JavaScript和目前成熟的網頁應用程式來說,低性能這件事已經不再是可以被接受的了,為了改善這個問題,現代JavaScript引擎混合了直譯和編譯兩種方式來取代單純直譯的方式,稱作即時編譯(Just-in-time compilation)。

即時編譯這種方式基本上是一次將source code編譯成machine code,但它並沒有可移植的文件,而是在編譯後立即執行程式碼,這種方式相較單純直譯的方式來說性能上快得多了。


上一篇
Day 24 元素操作
下一篇
Day 26 JavaScript引擎
系列文
30天JavaScript自學挑戰30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言