最近想把 LifeType 中的幾個 Class Library 換掉,原因是他們都太老舊,也都沒有人在維護,包含:
- PHPMailer 換成 SwiftMailer。因為 SwiftMailer 支援 SSL 與 TLS 等協定,所以我就可以拿 Google Mail 來當 Mail Server。
- Kses 換成 HTMLPurifier。因為 Kses沒人在維護了,HTMLPurifier 看起來開發非常的活躍。
- MagpieRSS 換成 SimplePie。情況跟 Kses 一樣。
但是換之前,總得作一些實驗,要不然換到一個地雷就完蛋了。
下面是 MagpieRSS 與 SimplePie 的測試,我採用的是 Code Ninja 的測試方式與資料,使用的軟體與設定如下:
- MagpieRSS 0.72 與 SimplePie 1.1
- 我將 test1.rss 放在我的 localhost 中, 減少 remote 讀取的時間。不過原始的 test1.rss 用 SimplePie 並無法讀取,會發生 XML Parser Error。我是用 Firefox的檢視原始碼工具另存新檔後,SimplePie 才能讀取 test1.rss。
- 我的環境是使用 Apache 2.0 與 PHP 5.2.3
- 將 SimplePie 的 stupidly fast 功能打開,讓 SimplePie 與 MagpieRSS 的功能比較接近。否則 SimplePie 預設的動作中,作了不少的事。
測試結果如下:
SimplePie(第一次讀取 RSS):
時間:7.50597 secs
記憶體:6667456 bytes
MagpieRSS(第一次讀取 RSS):
時間:12.83128 secs
記憶體:2340528 bytes
SimplePie(第二次讀取 RSS,使用快取):
時間:0.027497 secs
記憶體:4367264 bytes
MagpieRSS(第二次讀取 RSS,使用快取):
時間:0.007864 secs
記憶體:1957640 bytes
這結果看起來真的不錯,在第一次沒有 Cache 的情況下,SimplePie 解析 500 個項目的 RSS feed,在時間上比 MagpieRSS 來的快。可是在記憶體使用上則是 MagpieRSS 的 3 倍。可是在第二次讀取 RSS,並使用快取的情況下,MagpieRSS 就比 SimplePie 來的快。
不過很少有人的 Blog 的 RSS Feed 是有 500 個項目的吧?所以我用我自己的 Blog 的 RSS 2.0 來測試,結果如下:
SimplePie(第一次讀取 RSS):
時間:1.25598 secs
記憶體:640072 bytes
MagpieRSS(第一次讀取 RSS):
時間:1.295425 secs
記憶體:1158768 bytes
SimplePie(第二次讀取 RSS,使用快取):
時間:0.005092 secs
記憶體:483192 bytes
MagpieRSS(第二次讀取 RSS,使用快取):
時間:0 0.006621 secs
記憶體:176224 bytes
這結果真是讓我跌破眼鏡,竟然在第一次沒有任何 Cache的情況下,不管是在速度上還是記憶體用量上,SimplePie 均優於 MagpieRSS。可是在第二次使用 Cache 的情況下,MagpieRSS 還是比較好。
不過這裡有一個很重要的因素,讓我更想換成 SimplePie。因為在沒有任何特殊設定的情況下,SimplePie 讀出來的中文字是正確的,可是 MagpieRSS 是完全變成問號(因為轉碼錯誤)。
內部討論一下吧,如果沒有任何問題,我真的很想把 MagpieRSS 換成 SimplePie,不僅因為速度差不多,編碼可以完全正確解讀,而且還支持到 Atom 1.0!~除了記憶體用得比較凶一些,想不出有什麼不換的理由。
本篇文章同時貼在 SimplePie 的論壇:The testing benchmark of SimplePie(1.1) vs MagpieRSS(0.72)。
真實引用網址:
http://blog.markplace.net/trackback.php?id=329
迴響 ↓
回覆: PHP RSS Parser 的比較(SimplePie vs. MagpieRSS)
James 發表於 10/01/2008, 09:20
如果記憶體的使用量可以降低的話.
SimplePie真的就太棒了 ^^
我之前測試的結果和你差不多,但是考量到記憶體使用量的部份.
後來還是使用MagpieRSS,不過如你所說的對很多格式和中文的部份就要另外處理.
這點就有點傷腦筋...
如果需要測試的話,我也可以參一卡~~
的確是~
markwu 發表於 10/01/2008, 17:14
我會跟 Oscar 再討論看看,其實如果只有 Feed Reader plugin 會用到 RSS Feed,我真的覺得直接換掉就算了~
PHPMailer 也可以走 SSL
Tsung 發表於 14/01/2008, 03:40
PHPMailer 也可以走 SSL, 拿 G Mail 來當 Mail Server 耶(我目前也是這樣子用. XDD)
想問問除此之外, SwiftMailer 還有特別的好處嗎??
To Tsung
Mark 發表於 15/01/2008, 05:30
PHP Mailer 可以啊?我一直以為他是不行的呢!
如果 PHPMailer 也可以做到,那改用 SwiftMailer 的唯一好處就是,他有人 maintain 啦!
回覆: PHP RSS Parser 的比較(SimplePie vs. MagpieRSS)
Sumiko 發表於 04/12/2008, 10:54
請問phpamiler可以發送電子報(EDM)嗎?
回覆: PHP RSS Parser 的比較(SimplePie vs. MagpieRSS)
Benson 發表於 26/04/2010, 01:03
請問一下
MagpieRSS 中文轉碼錯誤
是因為RSS Feed編碼的問題嗎?
使用UTF8會有會有這樣的問題
最近想做些功能使用MagpieRSS
別用 MagpieRSS
markwu 發表於 26/04/2010, 15:40
MagpieRSS 應該年久失修了,改用其他的吧!SimplePie 是比較好的選擇。