PCDVD數位科技討論區
PCDVD數位科技討論區   註冊 常見問題 標記討論區為已讀

回到   PCDVD數位科技討論區 > 電腦硬體討論群組 > 系統組件
帳戶
密碼
 

  回應
 
主題工具
anderson1127
Elite Member
 

加入日期: Jan 2002
文章: 4,032
其實我會建議樓主不要在LAMP的架構下來做Multi-thread 的程式 , 沒有意義!!

最重要的理由是 Apache + PHP本身的架構就不是Multi-thread !!

Apache本身在執行PHP script時, 就必需要進行Fork Process ,每接一個Client Connection
就必需要Fork一個Process 來處理這個Connection , 不管你用什麼PHP Framework
都沒有例外 !!

因此,在LAMP架構之下,沒有辦法做到以Multi-thread base的PHP Application ....

最多只能夠針對PHP script的compile time來進行改善, 不要每執行一個php script
都去compile 一次php script (FastCGI記得就是處理這方面的事)

Web Application設計時就必需要注意,盡量不要有跳不出來的回圈,程式設計師應該要特別注意
如果有這種潛在問題,就會造成Memory的消耗!! 有再多的Memory ,也不夠花 ...

Multi-thread programming 的精神所在就是降低Memory 的消耗 ,如果架構設計得夠好
甚至可以有效利用Multi-Core CPU , 達到加速運算目的!!

只是很可惜的, 在PHP世界裡,我還沒看到有人發展For PHP Multi-thread Framework

要寫Multi-thread programming 要有一個覺悟,它的複雜度 , 比得上自己寫一個OS
這不是一般會寫PHP程式的人想像得到的事...
     
      
__________________
您想買新硬碟嗎? 購買前請務必參考這篇文章,是我的實際經驗

還想讓統一賺你的錢嗎?統一集團成員(能見度高的):
星巴克、家樂福、7-11、無印良品、黑貓宅急便、聖娜多堡、阪急百貨、
康是美、博客來、夢時代、Mister Donut 、Cold Stone 、龜甲萬、
維力33%股權、光泉31%股權、Smile速邁樂、紅心辣椒、台北轉運站(統一企業BOT)

統一LP33膠囊有環保署早已列管的一級管制品: DNOP塑化劑
舊 2014-02-20, 11:57 AM #21
回應時引用此文章
anderson1127離線中  
tvirus
Golden Member
 
tvirus的大頭照
 

加入日期: Jan 2003
您的住址: 惡運深淵
文章: 2,562
這是直譯式語言的悲哀

不過,我想,大部份人都不會知道慢在哪 XDD
 
舊 2014-02-20, 03:07 PM #22
回應時引用此文章
tvirus離線中  
vampire
Advance Member
 

加入日期: Jun 2013
文章: 416
引用:
作者anderson1127
其實我會建議樓主不要在LAMP的架構下來做Multi-thread 的程式 , 沒有意義!!

最重要的理由是 Apache + PHP本身的架構就不是Multi-thread !!

Apache本身在執行PHP script時, 就必需要進行Fork Process ,每接一個Client Connection
就必需要Fork一個Process 來處理這個Connection , 不管你用什麼PHP Framework
都沒有例外 !!

因此,在LAMP架構之下,沒有辦法做到以Multi-thread base的PHP Application ....

最多只能夠針對PHP script的compile time來進行改善, 不要每執行一個php script
都去compile 一次php script (FastCGI記得就是處理這方面的事)

Web Application設計時就必需要注意,盡量不要有跳不出來的回圈,程式設計師應該要特別注意
如果有這種潛在問題,就會造成Memory的消耗!! 有再多的Memory ,也不夠花 ...

Multi-thread programming 的精神所在就是降低Memory 的消耗 ,如果架構...


我在8樓也說沒啥意義了
不過看別人這樣high .... 不好意思潑冷水

multi-thread的複雜度 還是分很多種
要看使用的方式跟規劃
舊 2014-02-20, 07:47 PM #23
回應時引用此文章
vampire離線中  
amigoccs
Advance Member
 

加入日期: May 2003
您的住址: Taipei
文章: 363
Cool

Dear anderson1127,

> 其實我會建議樓主不要在LAMP的架構下來做Multi-thread 的程式 , 沒有意義!!
> 最重要的理由是 Apache + PHP本身的架構就不是Multi-thread !!

除非搭配 Apache Worker 模式,才有可能作到 Multi-thread。

我後來查閱 Multi-thread,很遺憾,Ruby 也要 jRuby 才有真正落實 Multi-thread,這部份的討論還蠻多的。

所以,我後來認為 LAMP 本身還是以快速開發雛型比較適合,需要大型架構,還是比較建議以 Scale-out 的方式分散運算,程式語言有本身的限制與原始設計要滿足的需求,There is no silver bullet.

這部份可以參考 Accelerate your LAMP

> Apache本身在執行PHP script時, 就必需要進行Fork Process ,每接一個Client Connection
> 就必需要Fork一個Process 來處理這個Connection , 不管你用什麼PHP Framework
> 都沒有例外 !!

就算改用 FastCGI,也是同樣受限 session,一樣無解﹍

> 因此,在LAMP架構之下,沒有辦法做到以Multi-thread base的PHP Application ....

是的!

> 最多只能夠針對PHP script的compile time來進行改善, 不要每執行一個php script
> 都去compile 一次php script (FastCGI記得就是處理這方面的事)

是 APC 或 OP-Cache 這類 PHP Accelerator,我在Optimize TurnKey Linux for ZurmoCRM 有提到這種加速方式。

> Web Application設計時就必需要注意,盡量不要有跳不出來的回圈,程式設計師應該要特別注意
> 如果有這種潛在問題,就會造成Memory的消耗!! 有再多的Memory ,也不夠花 ...

這個我持保留態度,原因是 Session Pool 本身就會有個 service 一直常駐,除非被 Kill,而他雖然消耗 memory,但節省不少與 DB 建立 connection 的時間。或許限制記憶體上限,並設定 garbage collection 時間,會有幫助在 memory consumption 與 效能上取得平衡。

> Multi-thread programming 的精神所在就是降低Memory 的消耗 ,如果架構設計得夠好
> 甚至可以有效利用Multi-Core CPU , 達到加速運算目的!!

這個我持保留態度,因為我認為 Multi-thread programming 是要能善用處理器計算資源,但不一定降低消耗 memory consumption

> 只是很可惜的, 在PHP世界裡,我還沒看到有人發展For PHP Multi-thread Framework

語言本身不行,Ruby 有假 multi-thread,只要不是搭配 jRuby

> 要寫Multi-thread programming 要有一個覺悟,它的複雜度 , 比得上自己寫一個OS
> 這不是一般會寫PHP程式的人想像得到的事...

確實如此,這也正是高級程式設計師的價值所在之一!

感謝您特地分享寶貴經驗!

Have a nice day!

Best regards,

Amigo
__________________
Amigo's CRM Notes - 客戶關係管理中文部落格
Amigo's Technical Notes - 科技類英文部落格
Amigo's Campaigns - 主辦或主講的實體活動宣傳網頁
舊 2014-07-16, 11:01 PM #24
回應時引用此文章
amigoccs離線中  
amigoccs
Advance Member
 

加入日期: May 2003
您的住址: Taipei
文章: 363
Cool

Dear vampire,

> multi-thread的複雜度 還是分很多種
> 要看使用的方式跟規劃

是的,非常同意,Multi-thread 與平行處理一直都是比較進階的程式設計主題之一。

Have a nice day!

Best regards,

Amigo
__________________
Amigo's CRM Notes - 客戶關係管理中文部落格
Amigo's Technical Notes - 科技類英文部落格
Amigo's Campaigns - 主辦或主講的實體活動宣傳網頁
舊 2014-07-16, 11:03 PM #25
回應時引用此文章
amigoccs離線中  


    回應


POPIN
主題工具

發表文章規則
不可以發起新主題
不可以回應主題
不可以上傳附加檔案
不可以編輯您的文章

vB 代碼打開
[IMG]代碼打開
HTML代碼關閉



所有的時間均為GMT +8。 現在的時間是09:28 PM.


vBulletin Version 3.0.1
powered_by_vbulletin 2025。