• <sub id="h4knl"><ol id="h4knl"></ol></sub>
    <sup id="h4knl"></sup>
      <sub id="h4knl"></sub>

      <sub id="h4knl"><ol id="h4knl"><em id="h4knl"></em></ol></sub><s id="h4knl"></s>
      1. <strong id="h4knl"></strong>

      2. 運(yùn)算將會怎樣支持前端javascript

        時(shí)間:2024-10-14 19:27:57 JavaScript 我要投稿
        • 相關(guān)推薦

        運(yùn)算將會怎樣支持前端javascript

          下面我就個(gè)人觀點(diǎn)猜測一下,并行運(yùn)算將會怎樣支持前端javascript的.

          1 不太可能的進(jìn)化

          顯示線程的支持

          如果在Javascript中支持顯示線程,那么可能是一種災(zāi)難,目前的瀏覽器解析Javascript并執(zhí)行都是在瀏覽器的ui線程中工作的.

          比如你可以在Javascript中運(yùn)行while(true),這時(shí)瀏覽器界面就會停止響應(yīng).或者通過我之前的文章(編譯Javascript引擎,為JavaScript提供睡眠功能:http://www.cnblogs.com/ioriwellings/archive/2010/08/16/1800416.html)了解UI界面被阻塞的過程.

          另外如果顯示支持線程必然也會支持線程間數(shù)據(jù)同步的同步原語功能,那就會出現(xiàn)這樣的問題:

          在一個(gè)函數(shù)中獲取鎖,而在另一個(gè)函數(shù)中釋放鎖,但是如果另一個(gè)函數(shù)出錯(cuò)怎么辦,或者另一個(gè)函數(shù)是從另一個(gè)文件中引用的,又碰巧那個(gè)文件由于某些原因(網(wǎng)絡(luò)問題,編碼問題)沒有加載進(jìn)來,這時(shí)就會發(fā)生死鎖.

          所以根據(jù)上面的一些原因,在JavaScript支持顯示線程還不太現(xiàn)實(shí).

          2 有可能的進(jìn)化

          隱式的并行支持

          類似于openMP的宏指令,

          下面代碼聲明并行運(yùn)算FOR循環(huán):

          復(fù)制代碼 代碼如下:

          #pragma omp parallel for

          for (i = 0; i < N; i++)

          a[i] = 2 * i;

          這種方式可以避免前面遇到的各種麻煩,并行的運(yùn)算被托管于Javascript引擎內(nèi)部,所以Javascript引擎有更多的空間處理優(yōu)化這些并行運(yùn)算,比如在內(nèi)部調(diào)用openMP,Intel TBB的并行功能.

          所以我推測這種方式將會很可能被采用.

          3 處理并行異常

          由于Javascript代碼被隱式托管于并行線程處理,所以你可能不會馬上得到某個(gè)線程的異常狀態(tài),而是要等到全部的線程運(yùn)行結(jié)束后才會知道某些代碼出現(xiàn)異常.

          4 調(diào)試器的進(jìn)化

          會產(chǎn)生支持線程感知的Javascript調(diào)試器,能夠分析每個(gè)線程中的信息,并且能夠凍結(jié)/恢復(fù)某個(gè)線程的運(yùn)行.

          當(dāng)然了,類似于firebug這樣的用Javascript腳本寫的調(diào)試器也將會有更大的提升,但是我想更理想的還是本地應(yīng)用程序的調(diào)試器將會成為主流,比如:visual studio.

          5 結(jié)語

          并行運(yùn)算將會影響前臺Javascript的執(zhí)行性能,很多用Javascript寫的前臺效果,Javascript游戲的性能將得到改變與提升. 可是我會看到j(luò)avascript的這種轉(zhuǎn)變嗎?

          如果實(shí)在等不到,還是可以編譯現(xiàn)有的js引擎,并添加并行運(yùn)算接口,然后自已發(fā)布瀏覽器,讓客戶下載,多核的功能還是可能利用到的.

          但是還要兼容現(xiàn)在javascript規(guī)范,不然其它瀏覽器將不能識別你的代碼,所以就需要在js引擎內(nèi)部對原有串行代碼分析,而且要準(zhǔn)確,將可以轉(zhuǎn)換為并行的代碼進(jìn)行優(yōu)化.我想這個(gè)任務(wù)還是很堅(jiān)巨的.

        《&.doc》
        将本文的Word文档下载到电脑,方便收藏和打印
        推荐度:
        点击下载文档

        【運(yùn)算將會怎樣支持前端javascript】相關(guān)文章:

        javascript分析運(yùn)算符用法08-07

        對javascript的理解08-08

        常用的JavaScript模式09-22

        Javascript的this用法簡述08-15

        JavaScript學(xué)習(xí)筆記08-24

        JavaScript 基礎(chǔ)教學(xué)09-29

        JavaScript的課堂講解09-03

        JavaScript常用方法匯總10-25

        JavaScript數(shù)組常用方法介紹09-04

        JavaScript中的with關(guān)鍵字07-24

        国产高潮无套免费视频_久久九九兔免费精品6_99精品热6080YY久久_国产91久久久久久无码
      3. <sub id="h4knl"><ol id="h4knl"></ol></sub>
        <sup id="h4knl"></sup>
          <sub id="h4knl"></sub>

          <sub id="h4knl"><ol id="h4knl"><em id="h4knl"></em></ol></sub><s id="h4knl"></s>
          1. <strong id="h4knl"></strong>

          2. 香港三日本三级少妇三级 | 免费国产精品专区 | 日本孕交系列视频 | 亚洲欧美日韩综合久久久久 | 亚洲va久久久噜噜噜久久天堂 | 亚洲人成网站在线观看69影院 |

            運(yùn)算將會怎樣支持前端javascript

              下面我就個(gè)人觀點(diǎn)猜測一下,并行運(yùn)算將會怎樣支持前端javascript的.

              1 不太可能的進(jìn)化

              顯示線程的支持

              如果在Javascript中支持顯示線程,那么可能是一種災(zāi)難,目前的瀏覽器解析Javascript并執(zhí)行都是在瀏覽器的ui線程中工作的.

              比如你可以在Javascript中運(yùn)行while(true),這時(shí)瀏覽器界面就會停止響應(yīng).或者通過我之前的文章(編譯Javascript引擎,為JavaScript提供睡眠功能:http://www.cnblogs.com/ioriwellings/archive/2010/08/16/1800416.html)了解UI界面被阻塞的過程.

              另外如果顯示支持線程必然也會支持線程間數(shù)據(jù)同步的同步原語功能,那就會出現(xiàn)這樣的問題:

              在一個(gè)函數(shù)中獲取鎖,而在另一個(gè)函數(shù)中釋放鎖,但是如果另一個(gè)函數(shù)出錯(cuò)怎么辦,或者另一個(gè)函數(shù)是從另一個(gè)文件中引用的,又碰巧那個(gè)文件由于某些原因(網(wǎng)絡(luò)問題,編碼問題)沒有加載進(jìn)來,這時(shí)就會發(fā)生死鎖.

              所以根據(jù)上面的一些原因,在JavaScript支持顯示線程還不太現(xiàn)實(shí).

              2 有可能的進(jìn)化

              隱式的并行支持

              類似于openMP的宏指令,

              下面代碼聲明并行運(yùn)算FOR循環(huán):

              復(fù)制代碼 代碼如下:

              #pragma omp parallel for

              for (i = 0; i < N; i++)

              a[i] = 2 * i;

              這種方式可以避免前面遇到的各種麻煩,并行的運(yùn)算被托管于Javascript引擎內(nèi)部,所以Javascript引擎有更多的空間處理優(yōu)化這些并行運(yùn)算,比如在內(nèi)部調(diào)用openMP,Intel TBB的并行功能.

              所以我推測這種方式將會很可能被采用.

              3 處理并行異常

              由于Javascript代碼被隱式托管于并行線程處理,所以你可能不會馬上得到某個(gè)線程的異常狀態(tài),而是要等到全部的線程運(yùn)行結(jié)束后才會知道某些代碼出現(xiàn)異常.

              4 調(diào)試器的進(jìn)化

              會產(chǎn)生支持線程感知的Javascript調(diào)試器,能夠分析每個(gè)線程中的信息,并且能夠凍結(jié)/恢復(fù)某個(gè)線程的運(yùn)行.

              當(dāng)然了,類似于firebug這樣的用Javascript腳本寫的調(diào)試器也將會有更大的提升,但是我想更理想的還是本地應(yīng)用程序的調(diào)試器將會成為主流,比如:visual studio.

              5 結(jié)語

              并行運(yùn)算將會影響前臺Javascript的執(zhí)行性能,很多用Javascript寫的前臺效果,Javascript游戲的性能將得到改變與提升. 可是我會看到j(luò)avascript的這種轉(zhuǎn)變嗎?

              如果實(shí)在等不到,還是可以編譯現(xiàn)有的js引擎,并添加并行運(yùn)算接口,然后自已發(fā)布瀏覽器,讓客戶下載,多核的功能還是可能利用到的.

              但是還要兼容現(xiàn)在javascript規(guī)范,不然其它瀏覽器將不能識別你的代碼,所以就需要在js引擎內(nèi)部對原有串行代碼分析,而且要準(zhǔn)確,將可以轉(zhuǎn)換為并行的代碼進(jìn)行優(yōu)化.我想這個(gè)任務(wù)還是很堅(jiān)巨的.