Orcish Maneuver:讓 Perl 排序程式加速的方法

Orcish Maneuver 是一個可以讓 Perl 排序程式加速的實作方式,這個方法在法則的排序問題上非常有用。 在 Perl 程式中,如果遇到比較複雜的排序問題時,一般的程式設計師會會使用 sort 配合一個自己撰寫的排序函式來處理。 ...

July 18, 2014 · G. T. Wang

加速 JavaScript 執行效率的 DOM 操作技巧(降低瀏覽器回流)

在開發 RIA 的過程中,會常常使用到 JavaScript 來變更網頁元素,甚至增加新的網頁元素,而不同的操作方式也會對執行效能有所影響。 瀏覽器在顯示網頁時,會需要計算每一個網頁元素應該放置在哪個位置,這個計算過程就稱為瀏覽器回流(browser reflow)。當我們對 DOM 進行操作(例如更改元素的 CSS 樣式、大小等)或是改變視窗大小時,也會造成瀏覽器的回流,由於瀏覽器的流回需要耗費時間,所以如果可以盡量減少回流,就可以增加整個網頁應用程式的效率。 ...

May 8, 2014 · G. T. Wang

HTML5 的 Server-Sent Events 串流使用教學

Server-Sent Events 是一個已經被 W3C 納入 HTML5 標準的 API,它可以讓伺服器透過一般的 HTTP 協定主動更新瀏覽器的資料。 傳統的網頁架構下,如果瀏覽器要持續接收來自於伺服器端的新資料時,通常都是透過 Polling、Long-Polling 或 Streaming 等方式來達成,而後來出現的 WebSocket 徹底解決了這個問題,不過除此之外,在 HTML5 標準中還有一個 Server-Sent Events 也可以處理這類型的問題。 ...

April 12, 2014 · G. T. Wang

Chrome V8 引擎使用 JavaScript 背景編譯技術大幅提升執行效能

Google 將 Chrome 的 JavaScript 編譯動作放在背景執行,改善瀏覽器的整體效能。 一直以來 Chrome 都不斷進行效能的改進,V8 引擎透過編譯 JavaScript 的方式,加速 JavaScript 的執行速度,在以前這個編譯動作是放在主要執行序(main thread)上來處理的,但是這樣的做法會對於 JavaScript 的執行效能有一些影響。 ...

February 14, 2014 · G. T. Wang

asm.js 架構與 Emscripten 編譯器:Mozilla 在網頁上發展出接近原生(Native)程式效能的 JavaScript 程式(一)

Mozilla 為了讓 JavaScript 執行得更快,因此發展了 asm.js 這個架構,在這個架構下,可以讓 JavaScript 的程式執行的效率提升很多,甚至可以很接近原生(native)程式的執行效能! ...

July 2, 2013 · G. T. Wang