C++ 使用 Async 非同步函數開發平行化計算程式教學

這裡介紹 C++ 語言的 std::async 非同步函數的使用方式,並提供一些入門的範例程式碼。 由於摩爾定律已經達到極限,現今的 CPU 都已經演變為多核心(multi-core)的架構,單一執行緒(single thread)的程式放在新的電腦中不見得可以跑得更快,若要發揮 CPU 完整的計算能力,就必須充分使用 CPU 的每一個核心。 ...

March 9, 2017 · G. T. Wang

樹莓派 Raspberry Pi GPU 加速運算教學:QPULib 函式庫

這裡介紹如何在樹莓派上使用 QPULib 這套 QPU(GPU) 平行運算函式庫,加速各種運算的執行,解決樹莓派 CPU 運算速度不足的問題。 QPULib 是一套可以運用樹莓派的 QPU 進行平行運算的 C++ 函式庫,它包含特殊的程式語言語法以及編譯器,可在執行時產生適用於 QPU 執行的程式,讓 QPU 負責較為大量的運算,大幅增加運算的速度,對於有實時(real-time)需求的應用應該很有幫助。以下是 QPULib 的使用教學與範例程式碼。 ...

January 24, 2017 · G. T. Wang

C 語言 #pragma pack 預處理指令的意義、用法教學與範例程式碼

這裡介紹 C 語言預處理指令 #pragma pack 所代表的意思,並以實際範例說明其使用上的效果與不使用的差異。 C 語言的 #pragma pack 是用來指定 struct 結構內部資料的儲存對齊方式的預處理指令,會直接影響 struct 結構所使用的記憶體空間大小,以及每個內部變數的放置位置,在處理低階資料結構(例如網路封包)時時常會需要使用到這個語法,以下是使用教學與實際範例。 ...

January 18, 2017 · G. T. Wang

Ubuntu Linux 安裝最新版 NGINX 伺服器,支援 HTTP/2 加速網頁傳輸

這裡介紹如何在 Ubuntu Linux 上安裝最新版 Nginx 伺服器,讓網站支援 HTTP/2 傳輸協定,加快網頁的載入速度。 HTTP/2 是繼 1999 年 HTTP/1.1 之後所制定的新 HTTP 傳輸協定標準,其以 Google 的 SPDY 技術為基礎,具有相當優異的傳輸與處理效能,多工(Multiplexing)的新特性可以讓瀏覽器在同時間內對多個伺服器發送請求,並採用更高效率的壓縮技術,大幅縮短網頁傳輸與處理的時間。 ...

May 16, 2016 · G. T. Wang

延遲載入 JavaScripts 的實務作法,加速網頁顯示速度

這裡介紹實務上延遲載入各種 JavaScript 的作法,包含 facebook、Google+ 與 twitter 等各類工具。 在網頁中我們可以使用 async 或 defer 的方式來引入外部的 JavaScript 檔案,這樣可以減輕外部 JavaScript 檔對 HTML 解析的效能影響,而這裡我們要介紹另一種在實務上延遲載入各種 JavaScript 程式碼的作法,包含常見的社群按鈕以及各種 JavaScript 工具,例如 facebook、Google+ 與 twitter 等。 ...

April 19, 2016 · G. T. Wang