星期一, 4月 11, 2011

在 WAMP, xAMP 加快 localhost drupal 執行的速度

利用 WAMP, TWAMP 在 Windows 平台下開發建置 Drupal 實在是一件方便的事。可是,相較於 Linux, Mac 平台來說,一直有個困擾的問題:速度。在 Windows 底下使用 xAMP 怎麼會那麼慢呢?

因此,找了幾個方法,終於解決了這個問題。

平時開發 Drupal 系統我都是在 Mac 底下執行,可是因為教學的關係,我必需使用 Windows 平台作為說明的平台。(如果使用 Mac 作為示範的話,可能會嚇跑許多人吧。)

第一次使用 xAMP 的時候,很快就讓我失望了:速度差好多喔。

我想這個問題在網路上的許多地方一定都有人在討論,因為自身是使用 Drupal 的闗係,當然就跑到 Drupal.org 上去找答案了。

關於這個問題,解法眾多,有的聽起來還有點矛盾 (有人建議只使用  InnoDB, 可是卻也有人建議只使用 MYISAM, 這二個建議不就矛盾嗎?不過,好像也不是,似乎單純只使用一種 DB 模式就可以加快了。應該是這樣吧。)

以下逐一列出,下面的連結都來自於 drupal.org。如果你心急的話,直接看最後一個方案,也是目前我使用的方案,速度可以快一倍以上。
  • 改變 php.ini 與 my.conf: 將 php.ini 中的realpath_cache_size 設為 2M, 以及將 my.cnf 中的 skip innob 取消註解,重開 apache 與 mysql。(這個方法沒有 user 回饋,不知有沒有效果以及是否有其它副作用。)
  • 使用 Zend Server: 這個方法很多 user 都回覆有效,而且效果很大。有人甚至回覆快了二三倍,速度就跟 linux / mac 上的速度差不多了。不過,也有人回覆變更後,遇到了 error。同時,安裝 / 變更的步驟很長,我作了一半後,擔心萬一無效而系統又無法還原,因此作罷。
  • 在 hosts 中定義 localhost 與 127.0.0.1: 這個有點奇怪,不過也有道理,我依稀記得以前在 windows 平台時曾碰過類似的問題。不過我並沒有試。User 也有人回答有效。
  • 使用 Ubuntu (Virtual Machine): 雖然有人讚不絕口,但是這算是解答嗎?
  • 在 Firefox 中移除 IPv6: 這個是目前我用的方法,改變設定後,跟大家一樣使用 /admin/build/modules 的載入作為測試,速度至少快了一倍。
以下將如何在 firefox 中移除 IPv6 功能,以圖示作個說明:
在進行變更之前,不妨先找一個你覺得 localhost 中開啟速度很慢的網頁,先記錄一下開啟所需的時間。

首先,開啟 firefox,並在網址上輸入 about:config 的文字。呵呵,它還要你發誓不會亂搞。就按一下吧,同時,真的不要亂搞。



接著,在篩選條件中,輸入 network.dns 字樣



在它列出的清單中,目前 network.dns.disableIPv6 的值是 false。在它上面點按二下來改變它的值成為 true。



好了,關閉 firefox 再重新開啟。然後在網址輸入你剛剛測試的 localhost 中的網頁,試試看速度有沒有改變。我以 drupal 中的 /admin/build/modules 進行測試,原先需要 12 秒,變更 firefox 的設定之後,只需 5 秒。呵,總算 Windows 中開發的速度可以跟 Linux / Mac 平起平坐了。

2 則留言:

  1. 有沒有試過這方法,通過各瀏覽器:
    http://www.notabluescreen.com/apache-windows-slow-ipv6

    回覆刪除
  2. 知道這個方法,在你的網站上也曾看到這篇。也還沒有試,今天找個時間試試看。

    回覆刪除

注意:只有此網誌的成員可以留言。