2014年5月9日 星期五

PHP性能測試工具XHProf使用詳解

一,什麼是XHProfXHProf是一個分層PHP性能分析工具。它報告函數級別的請求次數和各種指標,包括阻塞時間,CPU時間和內存使用情況。一個函數的開銷,可細分成調用者和被調用者的開銷,XHProf數據收集階段,它記錄調用次數的追踪和包容性的指標弧在動態callgraph的一個程序。它獨有的數據計算的報告/後處理階段。在數據收集時,XHProfd通過檢測循環來處理遞歸的函數調用,並通過給遞歸調用中每個深度的調用一個有用的命名來避開死循環。 XHProf分析報告有助於理解被執行的代碼的結構,它有一個簡單的HTML的用戶界面( PHP寫成的)。基於瀏覽器的性能分析用戶界面能更容易查看,或是與同行們分享成果。也能繪製調用關係圖。

2014年4月22日 星期二

[HTML]TIPS-Get 100% Height in XHTML

TIPS-Get 100% Height in XHTML

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 
<html xmlns="http://www.w3.org/1999/xhtml">
<head><title>Height Test</title></head>
<body>
<div style="background-color:Gray; height:100%;">
AAA
</div>
</body></html>
如果你想用以上的Code去顯示一個佔滿全網頁的DIV,可能會大失所望。這段Code在IE6, 7或Firefox上都只會顯示一行的高度。
height:100%的寫法過去明明用得好好,昨是今非,為什麼?
XHTML!

2014年3月17日 星期一

[eclipse]中文亂碼問題解決方案

eclipse之所以會出現亂碼問題是因為eclipse編輯器選擇的編碼規則是可變的。一般默認都是UTF-8或者GBK,當從外部導入的一個工程時,如果該工程的編碼方式與eclipse中設置的編碼方式不同,就會產生中文的亂碼問題,這其中還有幾種情況。
 
如果導入的整個工程的編碼方式與eclipse的編碼方式有衝突,那麼這個工程裡所有的中文都是亂碼;如果所有工程的編碼方式與eclipse工作空間的編碼方式有衝突,那麼所有的工程裡的中文都有可能是亂碼。對於eclipse工作空間,eclipse會把你改的設置保存在工作空間的設置文件中,對於單個工程的編碼方式進行修改,那麼eclipse會把編碼方式保存在該工程的.setting文件包裡。
 
所以,要避免中文亂碼問題有兩個原則:(1)避免頻繁更換工作空間,最好項目從一開始就在一個工作空間中進行,並且最好設置工作空間的編碼方式為你平時最經常使用的或者是公司規定的項目編碼方式,這樣工程就會使用工作空間的編碼方式,避免出現編碼不一致的情形;(2)相同類型的文件盡量使用相同的編碼方式,可以保證相同類型的文件都能使用一致的編碼設置;
 
解決中文亂碼問題可以有以下設置方案:


2014年1月14日 星期二

[PHP] PHP Profiling 效能分析追蹤工具 (APD)

當程式寫完後, 發現整頁跑起來速度有點慢, 要追蹤分析是哪邊是造成速度慢的主因, 通常最簡單的方法, 是用 microtime() (可見此文: PHP 測量程式執行時間)來把每個 Function 包起來, 分別看執行時間.
如果太多要追蹤, 懶得這樣子包來包去, 另外一種就是用 PHP Profiling 的工具(APD)來做, 詳可見下述:
不過, 太久沒用這工具, 沒想到 APD 從 2008年到現在(2011), 都沒有新版, 使用 Pecl 安裝, 也無法直接安裝完成, 在此順便把解法紀錄於此.

2014年1月6日 星期一

[中文分詞]百度算法中怎麼進行中文切詞分詞

導讀:百度作為中文搜索引擎的先驅,它的核心地位可以說在短時期是沒有任何搜索引擎可以超越的,百度的卓越成就在於它對博大精深的中國文化的領悟和對中文分詞的的超強功底。百度受歡迎的主要原因除了用戶習慣的原因,在較大程度上得益於百度算法的精准率,搜索結果值更貼近用戶的想獲得的資訊。用一句廣告詞“正是我想要的”來形容百度最恰當不過了。

2014年1月3日 星期五

[linux]cut,sed,awk 字串處理

cut 教學:
  cut -b 10- filename //刪除該列的前10個字元
  cut -d(分界字元) filename //指定欄位的分界字元

sed 教學:
  sed -e '3d' //刪除第3列
  sed -e '2,5d' //刪除第2~5列
  sed -e '4,$d' //刪除第4列,但第4列是最後一列;錢字號『 $ 』代表最後一行!
  sed -e "/${var}/"d //在shell中,用變數代替
  sed 's/^...//' //刪除該列的前3個字元
  sed 's/...$//' //刪除該列的最後3個字元
  sed '/Hello/d' dataf3 //刪除Hello該列
  sed -i “s/\r//”FILENAME //刪除檔案中的^M字元


2013年12月27日 星期五

[regular expression]RegExr: Free Online RegEx Testing Tool 線上正規表示式測試工具

所有程式語言幾乎都有提供正規表示式這個強大的字串比對語法,各程式語言之間的表示法也幾乎都一樣,但是大多數的工程師還是用的零零落落(包括我),直接寫進程式裡面測試又很麻煩,有的情況一跑就是要很長時間才確定對不對,就找到了一個線上即時測試的工具:

http://gskinner.com/RegExr/

原文介紹頁:
http://gskinner.com/blog/archives/2008/03/regexr_free_onl.html

使用上很簡單,直接把寫好的正規表示式貼在





Google Analytics初學者入門簡介