2008年11月20日

[心得] 與大師相遇-PHP教父談理想網路環境(台大場)

前天去聽了 PHP 之父 Rasmus Lerdorf 的演講: Simple is Hard ,感覺還不賴。也意外發現自己的英聽還算及格,不過也可能是大師沒有用到什麼深奧詞彙的關係 :P

投影片在此:台大場

以下簡單講一些我覺得有興趣的部份:

Siege

Siege 是一套很有趣的工具,它可以幫我們測量出 HTTP 回應的效能。 Rasmus Lerdorf 在前半段介紹中大量使用它來查看程式修改前後的效率,感覺還不賴。

可惜它沒有 Windows 版本,你必須在 Unix-Like 系統上編譯使用。

投影片 10

檔案引入路徑

預設 php.ini 上的 include_path 都是把「 . 」 (也就是當前目錄) 放在 include_path 的最前面,使得我們在用 include 或 require 時會從當前目錄先尋找要引入的檔案。

為了不讓 PHP 程式在執行時,花費太多時間去尋找引入檔案, Rasmus Lerdorf 建議當前目錄把放在 include_path 的最後面。

這樣一來 PHP 引擎會先從指定的位置開始找要引入的檔案,而不是從當前目錄先找起。

投影片 13

找出相依的類別

安裝 PECL 的 included 套件,可以幫我們找出程式引用了哪些類別,而且還能圖形化顯示。

另外這裡有個重點就是,找出相依的類別後,最好改用 require 來取代 require_once 。

投影片 16

KCacheGrind

KCacheGrind 是一個可以顯示程式流程所佔的百分比或執行時間的工具,而且還是圖形化顯示;而解析的檔案就是 Xdebug (PHP) 或 valgrind (C) 產生的 profile 檔。

在 Windows 下有類似的工具稱為 WinCacheGrind ,但沒有圖形化顯示。

投影片 19

預設時區

PHP5 以後有預設時區的設定,如果我們在 php.ini 中強制設定的話,就能夠加速程式的運作。 (?)

引用 steve 的說明:

整段意思說 要coding的時候避免任何錯誤或警告
不管有沒有設定要顯示或關閉任何顯是錯誤
只要有錯誤或警告 都會減緩執行速度(要處理錯誤)

投影片 25

不要用 HTML 的 onxxxx 事件

因為 onxxxx 事件會透過 JavaScript 的 eval 來解釋裡面的內容,而「 ' 」就會被解釋成「 ' 」 (單引號) ;因此就算有做 htmlspeicalchars 也是沒用的。

投影片 40

後記

在寫這篇文章的時候, Mark 跟我說其實他比較想知道 Rasmus Lerdorf 對 PHP 未來的發展有什麼看法,而不是講這些很底層的東西。

我個人倒覺得是有一些收獲,至少我光看投影片看不出什麼鬼就是 :P

但我也覺得內容跟主題「與大師相遇-PHP教父談理想網路環境」有些偏差,但仍不失為一場有深度的演講。

另外 kiang 也在他的網站上寫了一些摘要,和我有興趣的部份不太一樣,大家不妨也參考看看。



Posted by jaceju at 樂多Roodo! │19:57 │回應(2)心得感想
樂多分類:網路/3C 工具:加入樂多書籤編輯本文
Ads by Roodo! 
回應文章

預設時區

大師意思說...
因為PHP5 以後要設定預設時區(很多function都會用到) 如果沒設定
你會看到 錯誤提示WARNING
整段意思說 要coding的時候避免任何錯誤或警告
不管有沒有設定要顯示或關閉任何顯是錯誤
只要有錯誤或警告 都會減緩執行速度(要處理錯誤)
Posted by steve at 2008年11月21日 17:04

@steve

感謝說明啦~ :)

這段我果然還是聽不太懂。
Posted by jaceju at 2008年11月22日 14:17