<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>效能 on G. T. Wang</title>
    <link>https://blog.gtwang.org/tags/%E6%95%88%E8%83%BD/</link>
    <description>Recent content in 效能 on G. T. Wang</description>
    <generator>Hugo -- 0.156.0</generator>
    <language>zh-tw</language>
    <copyright>G. T. Wang</copyright>
    <lastBuildDate>Mon, 13 Aug 2018 09:24:22 +0800</lastBuildDate>
    <atom:link href="https://blog.gtwang.org/tags/%E6%95%88%E8%83%BD/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>R 的 parallel 平行計算套件使用教學與範例</title>
      <link>https://blog.gtwang.org/r/r-parallel-computing-module-tutorial/</link>
      <pubDate>Mon, 13 Aug 2018 09:24:22 +0800</pubDate>
      <guid>https://blog.gtwang.org/r/r-parallel-computing-module-tutorial/</guid>
      <description>&lt;p&gt;這裡介紹如何藉由 R 的 &lt;code&gt;parallel&lt;/code&gt; 套件，使用多個 CPU 核心進行平行運算，提高計算速度。&lt;/p&gt;
&lt;p&gt;現在電腦的 CPU 都有好幾個核心，在 R 中處理大計算量的問題時，如果感覺計算速度不夠快，就可以考慮將計算工作平行化，藉著 &lt;code&gt;parallel&lt;/code&gt; 平行計算套件，將工作分散至多個 CPU 核心來計算，讓計算速度大幅提昇。&lt;/p&gt;</description>
    </item>
    <item>
      <title>Python 多執行緒 threading 模組平行化程式設計教學</title>
      <link>https://blog.gtwang.org/programming/python-threading-multithreaded-programming-tutorial/</link>
      <pubDate>Thu, 17 May 2018 19:55:19 +0800</pubDate>
      <guid>https://blog.gtwang.org/programming/python-threading-multithreaded-programming-tutorial/</guid>
      <description>&lt;p&gt;本篇介紹如何在 Python 中使用 &lt;code&gt;threading&lt;/code&gt; 模組，撰寫多執行緒的平行計算程式，利用多顆 CPU 核心加速運算。&lt;/p&gt;
&lt;p&gt;現在電腦的 CPU 都有許多的核心，若想要讓程式可以運用多顆 CPU 核心，充分發揮硬體的運算能力，就必須考慮使用多執行緒（multithreading）或多行程（multiprocessing）等平行化的技術，以下介紹 Python 的多執行緒的程式設計方法與技巧，並提供詳細的範例程式碼。&lt;/p&gt;</description>
    </item>
    <item>
      <title>CentOS Linux 編譯 NGINX &#43; Google PageSpeed &#43; Brotli 模組流程記錄</title>
      <link>https://blog.gtwang.org/linux/centos-linux-compile-nginx-google-pagespeed-brotli-module-201805/</link>
      <pubDate>Mon, 14 May 2018 12:28:01 +0800</pubDate>
      <guid>https://blog.gtwang.org/linux/centos-linux-compile-nginx-google-pagespeed-brotli-module-201805/</guid>
      <description>&lt;p&gt;這裡記錄在 CentOS Linux 7 中自行編譯 Nginx + PageSpeed + Brotli 的過程。&lt;/p&gt;
&lt;p&gt;最近我嘗試各種方式，想讓 Nginx 網頁伺服器的效能再提高一些，在&lt;a href=&#34;https://blog.gtwang.org/linux/nginx-php-fpm-configuration-optimization/&#34;&gt;校調了 Nginx 與 PHP-FPM 的基本設定&lt;/a&gt;，以及&lt;a href=&#34;https://blog.gtwang.org/linux/nginx-fastcgi-cache-for-wordpress-tutorial/&#34;&gt;啟用了 FastCGI Cache 快取&lt;/a&gt;之後，接著考慮 &lt;a href=&#34;https://developers.google.com/speed/pagespeed/module/&#34;&gt;Google 的 PageSpeed 模組&lt;/a&gt;與 &lt;a href=&#34;https://github.com/google/ngx_brotli&#34;&gt;Brotli 壓縮模組&lt;/a&gt;，而這兩個工具都不是 Nginx 內建的，所以若想使用的話，就必須自己重新編譯 Nginx。&lt;/p&gt;</description>
    </item>
    <item>
      <title>NGINX 設定 FastCGI Cache 快取教學，提高 WordPress 網站載入速度</title>
      <link>https://blog.gtwang.org/linux/nginx-fastcgi-cache-for-wordpress-tutorial/</link>
      <pubDate>Fri, 11 May 2018 13:44:23 +0800</pubDate>
      <guid>https://blog.gtwang.org/linux/nginx-fastcgi-cache-for-wordpress-tutorial/</guid>
      <description>&lt;p&gt;這裡介紹如何設定 Nginx 的 FastCGI 快取功能，加速 WordPress 網頁載入速度。&lt;/p&gt;
&lt;p&gt;WordPress 是現在很流行的網站架構，它是以 PHP 語言所開發的 CMS，在使用者每一次瀏覽網頁時，都需要執行 PHP 的程式碼，產生使用者所要求的頁面，這樣的好處是可以動態產生最新的網頁內容，而缺點就是速度會比一般靜態網頁還慢很多。&lt;/p&gt;</description>
    </item>
    <item>
      <title>Nginx 啟用 PHP-FPM 服務狀態監控網頁教學</title>
      <link>https://blog.gtwang.org/linux/nginx-enable-php-fpm-status-page-tutorial/</link>
      <pubDate>Sun, 06 May 2018 11:54:54 +0800</pubDate>
      <guid>https://blog.gtwang.org/linux/nginx-enable-php-fpm-status-page-tutorial/</guid>
      <description>&lt;p&gt;本篇介紹如何在 Nginx 與 PHP-FPM 的網頁伺服器的架構下，啟用 PHP-FPM 服務的狀態監控網頁，讓管理者查 PHP-FPM 服務內部即時的狀況。&lt;/p&gt;
&lt;p&gt;Nginx 網頁伺服器通常都會搭配 PHP-FPM 來處理 PHP 的網頁，Nginx 內部的狀態可以透過 &lt;a href=&#34;https://blog.gtwang.org/linux/nginx-enable-stub_status-module-to-collect-metrics/&#34;&gt;Nginx 內建的 stub_status 模組&lt;/a&gt;來即時監控，而 PHP-FPM 也有類似的監控功能，以下是設定與使用教學。&lt;/p&gt;</description>
    </item>
    <item>
      <title>C 語言 pthread 多執行緒平行化程式設計入門教學與範例</title>
      <link>https://blog.gtwang.org/programming/pthread-multithreading-programming-in-c-tutorial/</link>
      <pubDate>Sun, 25 Mar 2018 09:06:47 +0800</pubDate>
      <guid>https://blog.gtwang.org/programming/pthread-multithreading-programming-in-c-tutorial/</guid>
      <description>&lt;p&gt;這裡介紹如何在 C 語言中使用 &lt;code&gt;pthread&lt;/code&gt; 開發多執行緒的平行化程式，用多顆 CPU 加速計算。&lt;/p&gt;
&lt;p&gt;現在電腦的 CPU 都具備多顆核心，因此在使用 C 語言撰寫計算用的程式時，若能夠善用多核新的 CPU 進行平行運算，可以讓計算速度大幅提昇。&lt;/p&gt;</description>
    </item>
    <item>
      <title>CPULimit 限制 Linux 程式 CPU 使用率教學</title>
      <link>https://blog.gtwang.org/linux/limit-cpu-usage-of-a-process-in-linux-with-cpulimit-tool/</link>
      <pubDate>Thu, 11 Jan 2018 09:24:33 +0800</pubDate>
      <guid>https://blog.gtwang.org/linux/limit-cpu-usage-of-a-process-in-linux-with-cpulimit-tool/</guid>
      <description>&lt;p&gt;CPULimit 是一個可以用來限制程式 CPU 使用量的小工具，我們可以用他來調節 CPU 的用量，避免 CPU 被某些程式佔用。&lt;/p&gt;
&lt;p&gt;在 Linux 系統上執行一個比較需要 CPU 計算的程式時，在沒有特殊的限制之下，程式會盡可能使用系統上剩餘的 CPU 資源，也就是說如果沒有別的程式同時在使用 CPU 的話，100% 的 CPU 資源都會被該程式佔用，如果想要限制程式不要佔用太多的 CPU 資源，就可以使用 CPULimit 這個小工具。&lt;/p&gt;</description>
    </item>
    <item>
      <title>Python 用 cProfile 測量程式效能瓶頸與 gprof2dot 視覺化分析教學</title>
      <link>https://blog.gtwang.org/programming/python-cprofile-and-gprof2dot-tutorial/</link>
      <pubDate>Fri, 15 Dec 2017 14:41:27 +0800</pubDate>
      <guid>https://blog.gtwang.org/programming/python-cprofile-and-gprof2dot-tutorial/</guid>
      <description>&lt;p&gt;這裡介紹如何使用 cProfile 測量 Python 程式效能、找出效能瓶頸，並以 gprof2dot 產生視覺化分析圖表。&lt;/p&gt;
&lt;p&gt;較為大型的計算程式在開發完成後，通常都會接續著進行程式的執行效能測量與分析（&lt;a href=&#34;https://en.wikipedia.org/wiki/Profiling_%28computer_programming%29&#34;&gt;profiling&lt;/a&gt;），找出程式的瓶頸所在，針對少數關鍵的程式碼進一步做最佳化，改善整體程式的執行速度。&lt;/p&gt;</description>
    </item>
    <item>
      <title>C 語言 fork 使用教學與範例，多行程 Multi-Process 平行化程式設計</title>
      <link>https://blog.gtwang.org/programming/c-fork-tutorial-multi-process-programming/</link>
      <pubDate>Tue, 08 Aug 2017 16:10:41 +0800</pubDate>
      <guid>https://blog.gtwang.org/programming/c-fork-tutorial-multi-process-programming/</guid>
      <description>&lt;p&gt;這裡介紹如何使用 C 語言的 &lt;code&gt;fork&lt;/code&gt; 函數建立子行程，設計多行程的平行化程式。&lt;/p&gt;
&lt;p&gt;C 語言中的 &lt;code&gt;fork&lt;/code&gt; 函數可以將目前的程式行程（process）複製一份，建立出新的子行程（child process），而原本的行程就稱為父行程（parent process）。&lt;/p&gt;</description>
    </item>
    <item>
      <title>iPerf3 網路速度測試教學，頻寬檢測指令工具</title>
      <link>https://blog.gtwang.org/useful-tools/iperf-network-bandwidth-testing-tool-tutorial/</link>
      <pubDate>Sat, 15 Jul 2017 15:01:57 +0800</pubDate>
      <guid>https://blog.gtwang.org/useful-tools/iperf-network-bandwidth-testing-tool-tutorial/</guid>
      <description>&lt;p&gt;本篇介紹如何使用 iPerf3 這個網路速度測試工具，在各種作業系統與手機上檢測網路的頻寬。&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://iperf.fr/&#34;&gt;iPerf3&lt;/a&gt; 是一個網路頻寬測試指令工具，支援 IPv4 與 IPv6 網路位址與 TCP、UDP、SCTP 傳輸協定，可在 Windows、Mac OS X、Linux、FreeBSD 與手機等各種平台使用，是一個簡單又實用的小工具。&lt;/p&gt;</description>
    </item>
    <item>
      <title>RHadoop 以 MapReduce 實作 K-Means 分群演算法範例</title>
      <link>https://blog.gtwang.org/r/rhadoop-k-means-clustering-tutorial/</link>
      <pubDate>Wed, 03 May 2017 14:26:45 +0800</pubDate>
      <guid>https://blog.gtwang.org/r/rhadoop-k-means-clustering-tutorial/</guid>
      <description>&lt;p&gt;本篇敘述如何使用 RHadoop 的 MapReduce 實作 k-means 分群演算法。&lt;/p&gt;
&lt;p&gt;在架設好 &lt;a href=&#34;https://blog.gtwang.org/r/building-rhadoop-system-examples-tutorial/&#34;&gt;RHadoop 計算環境&lt;/a&gt;之後，接著就可以使用 MapReduce 撰寫各種分析程式，以下是用 MapReduce 實作 &lt;a href=&#34;https://zh.wikipedia.org/wiki/K-%E5%B9%B3%E5%9D%87%E7%AE%97%E6%B3%95&#34;&gt;k-means&lt;/a&gt; 的 R 程式碼。&lt;/p&gt;
&lt;p&gt;

&lt;ins class=&#34;adsbygoogle&#34;
     style=&#34;display:block&#34;
     data-ad-client=&#34;ca-pub-7794009487786811&#34;
     data-ad-slot=&#34;9921134032&#34;
     data-ad-format=&#34;auto&#34;
     data-full-width-responsive=&#34;true&#34;&gt;&lt;/ins&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/p&gt;

&lt;p&gt;這個 k-means 範例只是用來示範 MapReduce 的實作方法，程式碼比較簡單，不適合在實際的應用上使用。&lt;/p&gt;</description>
    </item>
    <item>
      <title>RHadoop 計算環境架設教學與使用範例程式碼</title>
      <link>https://blog.gtwang.org/r/building-rhadoop-system-examples-tutorial/</link>
      <pubDate>Tue, 02 May 2017 15:28:24 +0800</pubDate>
      <guid>https://blog.gtwang.org/r/building-rhadoop-system-examples-tutorial/</guid>
      <description>&lt;p&gt;本篇介紹如何手動架設 RHadoop 計算伺服器，並使用 RHadoop 相關套件進行巨量資料分析。&lt;/p&gt;
&lt;p&gt;RHadoop 是由 Revolution Analytics 所發展的 R 套件集，可讓 R 使用者更方便的使用 Hadoop 分析巨量資料，適用於 Cloudera、Hortonworks 等 Hadoop 發行版，以下是基本的 RHadoop 計算環境架設流程、MapReduce 用法與簡單的範例程式碼。&lt;/p&gt;</description>
    </item>
    <item>
      <title>Bash 程式設計教學：平行執行背景子行程，用 wait 等待工作結束</title>
      <link>https://blog.gtwang.org/programming/bash-tutorial-parallel-subprocesses-and-wait/</link>
      <pubDate>Sat, 25 Mar 2017 14:32:49 +0800</pubDate>
      <guid>https://blog.gtwang.org/programming/bash-tutorial-parallel-subprocesses-and-wait/</guid>
      <description>&lt;p&gt;本篇介紹在 Bash shell 中如何使用 &lt;code&gt;wait&lt;/code&gt; 等待背景子行程的執行，並取回每個行程執行結果。&lt;/p&gt;
&lt;p&gt;在 shell 程式設計中，為了讓程式執行起來更有效率，有時會讓多個子行程（subprocess）以 spawn 的方式放在背景執行，平行處理多項不同的工作，通常將需要等待硬碟 I/O 或網路回應的工作放在背景，可以程式執行的速度加快很多。&lt;/p&gt;</description>
    </item>
    <item>
      <title>Guetzli 開放原始碼 JPEG 圖片壓縮編碼器</title>
      <link>https://blog.gtwang.org/web-development/guetzli-jpeg-image-encoder/</link>
      <pubDate>Tue, 21 Mar 2017 14:44:34 +0800</pubDate>
      <guid>https://blog.gtwang.org/web-development/guetzli-jpeg-image-encoder/</guid>
      <description>&lt;p&gt;本篇介紹如何使用 Guetzli 壓縮大量圖片，並比較 Guetzli 與 TinyPNG 的壓縮結果。&lt;/p&gt;
&lt;p&gt;Guetzli 是一套由 Google 所開發的 JPEG 圖片壓縮演算法，與現有的 libjpeg 相比，可將高品質的圖片大小減少 20% 至 30% 左右，並且完全相容於現有的瀏覽器與各種應用程式，因此若應用於網頁的圖片壓縮上，可以大幅降低資料傳輸量，增進網頁載入速度。&lt;/p&gt;</description>
    </item>
    <item>
      <title>C/C&#43;&#43; 語言測量時間函數，評估程式執行效能方法整理</title>
      <link>https://blog.gtwang.org/programming/measure-the-execution-time-in-c-language/</link>
      <pubDate>Sun, 19 Mar 2017 16:50:25 +0800</pubDate>
      <guid>https://blog.gtwang.org/programming/measure-the-execution-time-in-c-language/</guid>
      <description>&lt;p&gt;這裡整理了 C/C++ 中各種測量時間的函數與用法，並提供完整的範例程式碼，讓程式開發者方便測量程式執行速度。&lt;/p&gt;
&lt;p&gt;這裡我蒐集了一些在 C/C++ 中常見的程式執行速度測量方式，因為時間的量測方式與細節非常多，這裡只是簡單寫一些常用的方式與範例。&lt;/p&gt;</description>
    </item>
    <item>
      <title>C&#43;&#43; 使用 Async 非同步函數開發平行化計算程式教學</title>
      <link>https://blog.gtwang.org/programming/cpp-11-async-function-parallel-computing-tutorial/</link>
      <pubDate>Thu, 09 Mar 2017 11:25:03 +0800</pubDate>
      <guid>https://blog.gtwang.org/programming/cpp-11-async-function-parallel-computing-tutorial/</guid>
      <description>&lt;p&gt;這裡介紹 C++ 語言的 &lt;code&gt;std::async&lt;/code&gt; 非同步函數的使用方式，並提供一些入門的範例程式碼。&lt;/p&gt;
&lt;p&gt;由於&lt;a href=&#34;https://zh.wikipedia.org/wiki/%E6%91%A9%E5%B0%94%E5%AE%9A%E5%BE%8B&#34;&gt;摩爾定律&lt;/a&gt;已經達到極限，現今的 CPU 都已經演變為多核心（multi-core）的架構，單一執行緒（single thread）的程式放在新的電腦中不見得可以跑得更快，若要發揮 CPU 完整的計算能力，就必須充分使用 CPU 的每一個核心。&lt;/p&gt;</description>
    </item>
    <item>
      <title>樹莓派 Raspberry Pi GPU 加速運算教學：QPULib 函式庫</title>
      <link>https://blog.gtwang.org/iot/raspberry-pi/qpulib-raspberry-pi-gpu-library-tutorial/</link>
      <pubDate>Tue, 24 Jan 2017 16:47:40 +0800</pubDate>
      <guid>https://blog.gtwang.org/iot/raspberry-pi/qpulib-raspberry-pi-gpu-library-tutorial/</guid>
      <description>&lt;p&gt;這裡介紹如何在樹莓派上使用 QPULib 這套 QPU（GPU） 平行運算函式庫，加速各種運算的執行，解決樹莓派 CPU 運算速度不足的問題。&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://github.com/mn416/QPULib&#34;&gt;QPULib&lt;/a&gt; 是一套可以運用樹莓派的 QPU 進行平行運算的 C++ 函式庫，它包含特殊的程式語言語法以及編譯器，可在執行時產生適用於 QPU 執行的程式，讓 QPU 負責較為大量的運算，大幅增加運算的速度，對於有實時（real-time）需求的應用應該很有幫助。以下是 QPULib 的使用教學與範例程式碼。&lt;/p&gt;</description>
    </item>
    <item>
      <title>C 語言 #pragma pack 預處理指令的意義、用法教學與範例程式碼</title>
      <link>https://blog.gtwang.org/programming/c-language-pragma-pack-tutorial-and-examples/</link>
      <pubDate>Wed, 18 Jan 2017 09:59:14 +0800</pubDate>
      <guid>https://blog.gtwang.org/programming/c-language-pragma-pack-tutorial-and-examples/</guid>
      <description>&lt;p&gt;這裡介紹 C 語言預處理指令 &lt;code&gt;#pragma pack&lt;/code&gt; 所代表的意思，並以實際範例說明其使用上的效果與不使用的差異。&lt;/p&gt;
&lt;p&gt;C 語言的 &lt;code&gt;#pragma pack&lt;/code&gt; 是用來指定 &lt;code&gt;struct&lt;/code&gt; 結構內部資料的儲存對齊方式的預處理指令，會直接影響 &lt;code&gt;struct&lt;/code&gt; 結構所使用的記憶體空間大小，以及每個內部變數的放置位置，在處理低階資料結構（例如網路封包）時時常會需要使用到這個語法，以下是使用教學與實際範例。&lt;/p&gt;</description>
    </item>
    <item>
      <title>Ubuntu Linux 安裝最新版 NGINX 伺服器，支援 HTTP/2 加速網頁傳輸</title>
      <link>https://blog.gtwang.org/linux/ubuntu-linux-install-latest-nginx-with-http2-support/</link>
      <pubDate>Mon, 16 May 2016 09:19:08 +0800</pubDate>
      <guid>https://blog.gtwang.org/linux/ubuntu-linux-install-latest-nginx-with-http2-support/</guid>
      <description>&lt;p&gt;這裡介紹如何在 Ubuntu Linux 上安裝最新版 Nginx 伺服器，讓網站支援 HTTP/2 傳輸協定，加快網頁的載入速度。&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://http2.github.io/&#34;&gt;HTTP/2&lt;/a&gt; 是繼 1999 年 HTTP/1.1 之後所制定的新 HTTP 傳輸協定標準，其以 Google 的 SPDY 技術為基礎，具有相當優異的傳輸與處理效能，多工（Multiplexing）的新特性可以讓瀏覽器在同時間內對多個伺服器發送請求，並採用更高效率的壓縮技術，大幅縮短網頁傳輸與處理的時間。&lt;/p&gt;</description>
    </item>
    <item>
      <title>延遲載入 JavaScripts 的實務作法，加速網頁顯示速度</title>
      <link>https://blog.gtwang.org/web-development/practical-method-for-multiple-deferred-javascripts/</link>
      <pubDate>Tue, 19 Apr 2016 21:25:00 +0800</pubDate>
      <guid>https://blog.gtwang.org/web-development/practical-method-for-multiple-deferred-javascripts/</guid>
      <description>&lt;p&gt;這裡介紹實務上延遲載入各種 JavaScript 的作法，包含 facebook、Google+ 與 twitter 等各類工具。&lt;/p&gt;
&lt;p&gt;在網頁中我們可以&lt;a href=&#34;https://blog.gtwang.org/web-development/using-defer-or-async-with-scripts-in-wordpress/&#34;&gt;使用 async 或 defer 的方式來引入外部的 JavaScript 檔案&lt;/a&gt;，這樣可以減輕外部 JavaScript 檔對 HTML 解析的效能影響，而這裡我們要介紹另一種在實務上延遲載入各種 JavaScript 程式碼的作法，包含常見的社群按鈕以及各種 JavaScript 工具，例如 facebook、Google+ 與 twitter 等。&lt;/p&gt;</description>
    </item>
    <item>
      <title>WordPress 設定 JavaScript 使用 Async 與 Defer 載入，網站校調技巧教學</title>
      <link>https://blog.gtwang.org/web-development/using-defer-or-async-with-scripts-in-wordpress/</link>
      <pubDate>Thu, 14 Apr 2016 09:08:14 +0800</pubDate>
      <guid>https://blog.gtwang.org/web-development/using-defer-or-async-with-scripts-in-wordpress/</guid>
      <description>&lt;p&gt;本篇介紹如何將 WordPress 網站的 JavaScript 改以 &lt;code&gt;async&lt;/code&gt; 與 &lt;code&gt;defer&lt;/code&gt; 的方式載入，改善網站的效能。&lt;/p&gt;
&lt;p&gt;網站在建置的後期階段都會進行一些效能的校調，而 &lt;a href=&#34;https://developers.google.com/speed/pagespeed/insights/&#34;&gt;PageSpeed Insights&lt;/a&gt; 是 Google 所提供的網頁效能分析工具，輸入網址即可立即測試網站效能，並且還有列出各種問題以及解決方案。&lt;/p&gt;</description>
    </item>
    <item>
      <title>Wi-Fi 無線網路與有線以太網路，該用哪一種比較好？</title>
      <link>https://blog.gtwang.org/tips/wi-fi-wireless-vs-ethernet-how-much-better-is-a-wired-connection/</link>
      <pubDate>Thu, 31 Dec 2015 11:00:39 +0800</pubDate>
      <guid>https://blog.gtwang.org/tips/wi-fi-wireless-vs-ethernet-how-much-better-is-a-wired-connection/</guid>
      <description>&lt;p&gt;這裡討論 Wi-Fi 無線網路與有線以太網路的差異，到底該使用哪一種網路比較好？&lt;/p&gt;
&lt;p&gt;現在的電腦、手機、平板以及各種可以上網的設備，上網的方式慢慢都從傳統的有線以太網路轉為 Wi-Fi 無線網路，省去了一大堆雜亂的網路線，而且在 Wi-Fi 收訊範圍內的任何地方都可以上網，比起傳統有線網路方便許多，像我個人的桌上型 iMac，雖然有以太網路的插孔，但是因為無線網路實在太方便了，所以我用了好幾年，從來都不插網路線的。&lt;/p&gt;</description>
    </item>
    <item>
      <title>該升級 Wi-Fi 路由器了嗎？各種無線網路傳輸標準與差異</title>
      <link>https://blog.gtwang.org/tips/upgrade-your-wireless-router-to-get-faster-speeds-and-more-reliable-wi-fi/</link>
      <pubDate>Tue, 18 Aug 2015 12:31:42 +0800</pubDate>
      <guid>https://blog.gtwang.org/tips/upgrade-your-wireless-router-to-get-faster-speeds-and-more-reliable-wi-fi/</guid>
      <description>&lt;p&gt;這裡介紹各種 Wi-Fi 無線網路的傳輸標準與差異，可幫助判斷自己的無線網路路由器是否該升級了。&lt;/p&gt;
&lt;p&gt;如果您有好幾年沒有升級過自己的 Wi-Fi 無線網路路由器，那您可能要稍微注意一下了，雖然舊的路由器依然可以使用，不過由於 Wi-Fi 無線網路的傳輸協定標準不斷演進，更換一個支援新標準的路由器通常可以提升 Wi-Fi 無線網路的品質。&lt;/p&gt;</description>
    </item>
    <item>
      <title>Linux 中最佳的壓縮格式：為什麼 bzip2 會被 xz 取代？那 gzip 又如何？</title>
      <link>https://blog.gtwang.org/linux/linux-why-are-tar-archive-formats-switching-to-xz-compression-to-replace-bzip2-and-what-about-gzip/</link>
      <pubDate>Sat, 30 May 2015 15:47:54 +0800</pubDate>
      <guid>https://blog.gtwang.org/linux/linux-why-are-tar-archive-formats-switching-to-xz-compression-to-replace-bzip2-and-what-about-gzip/</guid>
      <description>&lt;p&gt;這裡討論為什麼 &lt;code&gt;bzip2&lt;/code&gt; 壓縮格式會漸漸被 &lt;code&gt;xz&lt;/code&gt; 取代？那 &lt;code&gt;gzip&lt;/code&gt; 又如何？&lt;/p&gt;
&lt;p&gt;在 UNIX/Linux 社群中，傳統上如果要壓縮檔案通常都是使用 &lt;code&gt;tar&lt;/code&gt; 加上 &lt;code&gt;gzip&lt;/code&gt; 的壓縮方式，而後來 &lt;code&gt;gzip&lt;/code&gt; 漸漸被 &lt;code&gt;bzip2&lt;/code&gt; 所取代，而現在有越來越多人改用以 LZMA2 為基礎的 &lt;code&gt;xz&lt;/code&gt; 來壓縮 &lt;code&gt;tar&lt;/code&gt; 檔，連 kernel.org 也從 2013 年的年底開始，同時採用 &lt;code&gt;tar.gz&lt;/code&gt; 與 &lt;code&gt;tar.xz&lt;/code&gt; 兩種壓縮格式釋出 Linux 核心原始碼，而位於首頁的超連結則是直接使用 &lt;code&gt;tar.xz&lt;/code&gt; 這個格式，以往的 &lt;code&gt;tar.bz2&lt;/code&gt; 則是直接被捨棄。&lt;/p&gt;</description>
    </item>
    <item>
      <title>五個測試網站效能的免費工具</title>
      <link>https://blog.gtwang.org/web-development/tools-for-testing-website-performance-speed/</link>
      <pubDate>Tue, 26 May 2015 09:39:06 +0800</pubDate>
      <guid>https://blog.gtwang.org/web-development/tools-for-testing-website-performance-speed/</guid>
      <description>&lt;p&gt;這裡整理了五個可以測試與分析網站載入速度的免費線上工具。&lt;/p&gt;
&lt;p&gt;一個網站的速度會直接影響到使用者體驗，在開啟網站時，如果讓訪客等待的時間過長，除了給人不好的觀感之外，也還會造成訪客流失的問題。&lt;/p&gt;</description>
    </item>
    <item>
      <title>加速 Google Chrome 瀏覽器，減少 CPU 與記憶體的使用</title>
      <link>https://blog.gtwang.org/tips/speedup-google-chrome-use-less-battery-life-memory-and-cpu/</link>
      <pubDate>Tue, 05 May 2015 09:05:20 +0800</pubDate>
      <guid>https://blog.gtwang.org/tips/speedup-google-chrome-use-less-battery-life-memory-and-cpu/</guid>
      <description>&lt;p&gt;這裡搜集幾個讓 Google Chrome 瀏覽器加速的小技巧，減少 CPU 與記憶體的使用，亦可讓筆記型電腦更省電。&lt;/p&gt;
&lt;p&gt;Chrome 是目前很熱門的瀏覽器之一，由於他的上網速度比其他瀏覽器來得快，所以許多人都喜歡選擇 Chrome 當作主要的瀏覽器，但是他所耗費的系統資源其實也很多，如果電腦的硬體設備規格不高，也容易造成整個系統被拖慢。&lt;/p&gt;</description>
    </item>
    <item>
      <title>內容傳遞網路（CDN）對於手機瀏覽網頁的加速效果不好？</title>
      <link>https://blog.gtwang.org/web-development/why-is-my-cdn-slow-for-mobile-clients/</link>
      <pubDate>Thu, 23 Apr 2015 08:01:42 +0800</pubDate>
      <guid>https://blog.gtwang.org/web-development/why-is-my-cdn-slow-for-mobile-clients/</guid>
      <description>&lt;p&gt;這裡解釋內容傳遞網路（CDN）對於手機在瀏覽網頁時的影響，告訴您到底該不該將 CDN 使用在手機版的網頁上。&lt;/p&gt;
&lt;p&gt;近年來使用行動裝置瀏覽網頁的比例與日俱增，最近 Google 也針對行動裝置的網頁搜尋規則&lt;a href=&#34;https://blog.gtwang.org/web-development/google-mobile-friendly-test-tool/&#34;&gt;進行了調整&lt;/a&gt;，讓行動裝置在使用 Google 搜尋時，可以獲得更好的結果，在未來網站的設計上，除了考慮一般的桌機版本之外，手機與平板電腦的網頁也是非常重要的一環。&lt;/p&gt;</description>
    </item>
    <item>
      <title>CloudFlare 免費 CDN 伺服器使用教學，加速網站載入速度，阻擋惡意流量</title>
      <link>https://blog.gtwang.org/web-development/cloudflare-free-cdn-server-tutorial/</link>
      <pubDate>Sat, 11 Apr 2015 22:19:03 +0800</pubDate>
      <guid>https://blog.gtwang.org/web-development/cloudflare-free-cdn-server-tutorial/</guid>
      <description>&lt;p&gt;這裡介紹 CloudFlare 這個免費的 CDN 服務，它可以有效加速網站載入速度，並且阻擋惡意流量，還可以代管 DNS。&lt;/p&gt;
&lt;p&gt;

&lt;ins class=&#34;adsbygoogle&#34;
     style=&#34;display:block&#34;
     data-ad-client=&#34;ca-pub-7794009487786811&#34;
     data-ad-slot=&#34;9921134032&#34;
     data-ad-format=&#34;auto&#34;
     data-full-width-responsive=&#34;true&#34;&gt;&lt;/ins&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/p&gt;

&lt;p&gt;如果要讓網頁的載入速度更快，除了使用快取技巧（如 WordPress 的 &lt;a href=&#34;https://blog.gtwang.org/wordpress/zencache-wordpress-cache-plugin/&#34;&gt;ZenCache plugin&lt;/a&gt;）、減少動態網頁與資料庫查詢之外，還有一個很常見的方式就是使用內容傳遞網路（content delivery network，簡稱 CDN）伺服器，分散網頁伺服器的負載，縮短資料傳送距離，達到加速的目的。&lt;/p&gt;</description>
    </item>
    <item>
      <title>ZenCache：加速 WordPress 網站載入速度的快取 Plugin</title>
      <link>https://blog.gtwang.org/wordpress/zencache-wordpress-cache-plugin/</link>
      <pubDate>Thu, 09 Apr 2015 07:04:32 +0800</pubDate>
      <guid>https://blog.gtwang.org/wordpress/zencache-wordpress-cache-plugin/</guid>
      <description>&lt;p&gt;ZenCache 是一個 WordPress 的快取 plugin，它可以讓網站頁面的載入速度大幅提升，改善使用者經驗。&lt;/p&gt;
&lt;p&gt;網站的效能與使用者體驗息息相關，許多大網站對於網站效能進行了一些測試後，都發現網站的載入速度會直接影響網站流量與產品的銷售：&lt;/p&gt;</description>
    </item>
    <item>
      <title>Perl 標竿測試（Benchmark）模組：測量與比較 Perl 程式的執行時間</title>
      <link>https://blog.gtwang.org/perl/perl-benchmark-module/</link>
      <pubDate>Sun, 20 Jul 2014 19:33:06 +0800</pubDate>
      <guid>https://blog.gtwang.org/perl/perl-benchmark-module/</guid>
      <description>&lt;p&gt;Perl 的標竿測試（Benchmark）模組可以讓程式設計者很方便的測量程式的執行時間，本文將介紹這個模組的使用方式。&lt;/p&gt;
&lt;p&gt;一般所謂的標竿測試（Benchmark）就是在特定的環境中，測試程式的執行效能，常用的測試指標有程式的執行時間、耗費的記憶體或 IO 的頻率等等，根據這些測試數據，就可以比較不同的程式之間的效能差異。&lt;/p&gt;</description>
    </item>
    <item>
      <title>Orcish Maneuver：讓 Perl 排序程式加速的方法</title>
      <link>https://blog.gtwang.org/perl/orcish-maneuver-perl-sorting/</link>
      <pubDate>Fri, 18 Jul 2014 20:07:58 +0800</pubDate>
      <guid>https://blog.gtwang.org/perl/orcish-maneuver-perl-sorting/</guid>
      <description>&lt;p&gt;Orcish Maneuver 是一個可以讓 Perl 排序程式加速的實作方式，這個方法在法則的排序問題上非常有用。&lt;/p&gt;
&lt;p&gt;在 Perl 程式中，如果遇到比較複雜的排序問題時，一般的程式設計師會會使用 &lt;code&gt;sort&lt;/code&gt; 配合一個自己撰寫的排序函式來處理。&lt;/p&gt;</description>
    </item>
    <item>
      <title>加速 JavaScript 執行效率的 DOM 操作技巧（降低瀏覽器回流）</title>
      <link>https://blog.gtwang.org/programming/javascript-dom-manipulation/</link>
      <pubDate>Thu, 08 May 2014 08:20:08 +0800</pubDate>
      <guid>https://blog.gtwang.org/programming/javascript-dom-manipulation/</guid>
      <description>&lt;p&gt;在開發 RIA 的過程中，會常常使用到 JavaScript 來變更網頁元素，甚至增加新的網頁元素，而不同的操作方式也會對執行效能有所影響。&lt;/p&gt;
&lt;p&gt;瀏覽器在顯示網頁時，會需要計算每一個網頁元素應該放置在哪個位置，這個計算過程就稱為&lt;a href=&#34;https://www-archive.mozilla.org/newlayout/doc/reflow.html&#34;&gt;瀏覽器回流（browser reflow）&lt;/a&gt;。當我們對 DOM 進行操作（例如更改元素的 CSS 樣式、大小等）或是改變視窗大小時，也會造成瀏覽器的回流，由於瀏覽器的流回需要耗費時間，所以如果可以盡量減少回流，就可以增加整個網頁應用程式的效率。&lt;/p&gt;</description>
    </item>
    <item>
      <title>HTML5 的 Server-Sent Events 串流使用教學</title>
      <link>https://blog.gtwang.org/web-development/stream-updates-with-server-sent-events/</link>
      <pubDate>Sat, 12 Apr 2014 14:28:57 +0800</pubDate>
      <guid>https://blog.gtwang.org/web-development/stream-updates-with-server-sent-events/</guid>
      <description>&lt;p&gt;Server-Sent Events 是一個已經被 W3C 納入 HTML5 標準的 API，它可以讓伺服器透過一般的 HTTP 協定主動更新瀏覽器的資料。&lt;/p&gt;
&lt;p&gt;傳統的網頁架構下，如果瀏覽器要持續接收來自於伺服器端的新資料時，通常都是透過 Polling、Long-Polling 或 Streaming 等方式來達成，而後來出現的 &lt;a href=&#34;https://blog.gtwang.org/web-development/websocket-protocol/&#34;&gt;WebSocket&lt;/a&gt; 徹底解決了這個問題，不過除此之外，在 HTML5 標準中還有一個 Server-Sent Events 也可以處理這類型的問題。&lt;/p&gt;</description>
    </item>
    <item>
      <title>Chrome V8 引擎使用 JavaScript 背景編譯技術大幅提升執行效能</title>
      <link>https://blog.gtwang.org/web-development/google-speeds-chrome-compiling-javascript-background/</link>
      <pubDate>Fri, 14 Feb 2014 07:25:42 +0800</pubDate>
      <guid>https://blog.gtwang.org/web-development/google-speeds-chrome-compiling-javascript-background/</guid>
      <description>&lt;p&gt;Google 將 Chrome 的 JavaScript 編譯動作放在背景執行，改善瀏覽器的整體效能。&lt;/p&gt;
&lt;p&gt;一直以來 Chrome 都不斷進行效能的改進，V8 引擎透過編譯 JavaScript 的方式，加速 JavaScript 的執行速度，在以前這個編譯動作是放在主要執行序（main thread）上來處理的，但是這樣的做法會對於 JavaScript 的執行效能有一些影響。&lt;/p&gt;</description>
    </item>
    <item>
      <title>asm.js 架構與 Emscripten 編譯器：Mozilla 在網頁上發展出接近原生（Native）程式效能的 JavaScript 程式（一）</title>
      <link>https://blog.gtwang.org/web-development/asm-js-emscripten-1/</link>
      <pubDate>Tue, 02 Jul 2013 11:14:10 +0800</pubDate>
      <guid>https://blog.gtwang.org/web-development/asm-js-emscripten-1/</guid>
      <description>&lt;p&gt;Mozilla 為了讓 JavaScript 執行得更快，因此發展了 asm.js 這個架構，在這個架構下，可以讓 JavaScript 的程式執行的效率提升很多，甚至可以很接近原生（native）程式的執行效能！&lt;/p&gt;</description>
    </item>
    <item>
      <title>asm.js 架構與 Emscripten 編譯器：Mozilla 在網頁上發展出接近原生（Native）程式效能的 JavaScript 程式（二）</title>
      <link>https://blog.gtwang.org/web-development/asm-js-emscripten-2/</link>
      <pubDate>Tue, 02 Jul 2013 11:10:01 +0800</pubDate>
      <guid>https://blog.gtwang.org/web-development/asm-js-emscripten-2/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://blog.gtwang.org/web-development/asm-js-emscripten-1/&#34;&gt;上一篇&lt;/a&gt;我們介紹了 asm.js 架構的說明，這裡我們直接來看以實際的程式所測試出來的標竿分析（benchmarking）。&lt;/p&gt;
&lt;p&gt;

&lt;ins class=&#34;adsbygoogle&#34;
     style=&#34;display:block&#34;
     data-ad-client=&#34;ca-pub-7794009487786811&#34;
     data-ad-slot=&#34;9921134032&#34;
     data-ad-format=&#34;auto&#34;
     data-full-width-responsive=&#34;true&#34;&gt;&lt;/ins&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/p&gt;

&lt;h2 id=&#34;標竿分析benchmarking&#34;&gt;標竿分析（Benchmarking）&lt;/h2&gt;
&lt;p&gt;標竿分析（benchmarking）是一個棘手的問題，在實際的問題中有很多應用程式可以用來做標竿分析，但是因為我們的瀏覽器環境有許多限制，像是有限制的網路環境、儲存空間、顯示卡語音效裝置等等，所以我們這裡只選擇一些比較單純的程式來測試。&lt;/p&gt;</description>
    </item>
    <item>
      <title>asm.js 架構與 Emscripten 編譯器：Mozilla 在網頁上發展出接近原生（Native）程式效能的 JavaScript 程式（三）</title>
      <link>https://blog.gtwang.org/web-development/asm-js-emscripten-3/</link>
      <pubDate>Tue, 02 Jul 2013 11:03:24 +0800</pubDate>
      <guid>https://blog.gtwang.org/web-development/asm-js-emscripten-3/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://blog.gtwang.org/web-development/asm-js-emscripten-2/&#34;&gt;上一篇&lt;/a&gt;的測試報告中，我們分析過基本的 asm.js 程式執行效能，大致上還不錯，這裡我們繼續討論更進階的主題。&lt;/p&gt;
&lt;p&gt;

&lt;ins class=&#34;adsbygoogle&#34;
     style=&#34;display:block&#34;
     data-ad-client=&#34;ca-pub-7794009487786811&#34;
     data-ad-slot=&#34;9921134032&#34;
     data-ad-format=&#34;auto&#34;
     data-full-width-responsive=&#34;true&#34;&gt;&lt;/ins&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/p&gt;

&lt;h2 id=&#34;進階測試結果&#34;&gt;進階測試結果&lt;/h2&gt;
&lt;p&gt;但很不幸的，實際情況往往會比較複雜，在你要使用 asm.js 架構開始開發程式或是跟同事大力推銷 asm.js 之前，你必須先注意幾個問題。&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
