电竞比分网-中国电竞赛事及体育赛事平台

分享

Delphi2010中DataSnap高級(jí)技術(shù)(7)—TDSServerClass中Lif...

 -飛龍?jiān)谔? 2011-02-17
Delphi2010中DataSnap高級(jí)技術(shù)(7)—TDSServerClass中Lifecycle生命周期三種屬性說明 
Lifecycle 三種屬性: Session、Invocation、Server
這三種屬性都用在什么情況,有什么要注意的事項(xiàng),Delphi2010中罕有說明。
如果亂用這三種屬性,你的服務(wù)程序有可能崩潰,數(shù)據(jù)混亂,內(nèi)存占用大,效率低等問題!
下面我對(duì)這三種屬性的使用環(huán)境逐一介紹:
1. Session
說明:這是delphi2010中默認(rèn)屬性,也是delphi推薦設(shè)置。Session會(huì)為每個(gè)來自客戶端的鏈接,建立一個(gè)線程來實(shí)例化。實(shí)例化是什么概念呢?就是這個(gè)線程把所有你將要用到的類、函數(shù)等等都建立好了,等待你客戶端直接使用。這個(gè)線程和實(shí)例化并不釋放,直到客戶端中斷連接。如果有300個(gè)客戶端,那么你的服務(wù)器將會(huì)有300線程和實(shí)例,對(duì)服務(wù)器硬件和內(nèi)存是個(gè)考驗(yàn)。
適用環(huán)境:這個(gè)設(shè)置是線程安全的!
•客戶端數(shù)量少,每臺(tái)服務(wù)器不超過連接數(shù)量: 200 x CPU個(gè)數(shù) x (每個(gè)CPU核數(shù)x0.7) (這是經(jīng)驗(yàn)值,穩(wěn)定連接的數(shù)量,不是極限數(shù)量,別誤解^_^),內(nèi)存現(xiàn)在很便宜了,想加多大就多大!
•客戶端頻繁調(diào)用服務(wù)器數(shù)據(jù),無論連接數(shù)量是多少,最好都用這種設(shè)置。如果客戶端很多,建議采用負(fù)載平衡和多臺(tái)服務(wù)器來解決。
2. Invocation
說明:服務(wù)器只是建立連接,但是先不做實(shí)例化,只有當(dāng)客戶端請(qǐng)求功能的時(shí)候,服務(wù)器才開線程并實(shí)例化,當(dāng)客戶端用完后,服務(wù)器就釋放線程和實(shí)例。
 適用環(huán)境:這個(gè)設(shè)置是線程安全的!
•如果客戶端調(diào)用服務(wù)器數(shù)據(jù)頻率低,這種方法很不錯(cuò),會(huì)節(jié)約很多內(nèi)存。
3. Server
說明:服務(wù)器對(duì)所有客戶端連接使用一個(gè)實(shí)例,不是線程安全的。所以要自己控制客戶端并發(fā)調(diào)用的問題(可以使用互斥、原子量等方法),讓客戶端的調(diào)用排成一隊(duì)使用服務(wù)器資源。
 適用環(huán)境:這個(gè)設(shè)置不是線程安全的!!
•配置較低的服務(wù)器
•服務(wù)器連接的另一端只能是單線程工作的模式

本文來自CSDN博客,轉(zhuǎn)載請(qǐng)標(biāo)明出處:http://blog.csdn.net/sunstone/archive/2010/02/02/5282666.aspx

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多