Re: [閒聊] 效率最高的動態網頁處理法
※ 引述《erspicu (.)》之銘言:
: 想討論的是比較極端的狀況,意思是說特例.
: 前面有人說拿組語寫網頁,我還真的看過....
: 大概是cgi那種時代,除了用perl和一些script撰寫cgi script外,
: 也可以直接用c寫,c裡面可以崁入asm,更甚至你直接用asm寫執行檔,
: 給cgi去跑也是ok.... 就看過有教學教你如何在win32上寫asm給cgi印hello word,
: 然後處理post跟get讀取.
: 不過cgi這種運作概念就有它的天生缺陷,比較後期的技術叫fastcgi,
: 其實fastcgi我個人是很看好,只是跟後來出的網頁技術相比,大時代潮流和硬體性能提升,
: 大家就比較不在意了和鑽這種牛角尖了... 我覺得fastcgi還滿強的,
: 是那種執行第一次就掛載到記憶體(底下印象有誤請修正一下)
: 永存的東西,所以IO時間就是記憶體存取的時間,印象中大概架構是
: //never stop
: while(true)
: {
: wait for request
: .
: .
: .
: }
: 如果有一個變數叫counter是廣域變數,初始為0,啟動網頁++一次,
: 傳統cgi每次執行網頁process重建 , print出來都永遠是 1
: 而fastcgi你執行幾次, counter出來就一直累積下去.....
: 如果這種東西改用asm,應該更可怕.....
: 重覆啟動直譯器讀SCRIPT時間省了
: 或是VM處理bytecode時間也省了
: 反正就啟動 程式就掛住
: 我相信應該有不少特殊網站是fastcgi+c的技術,不過用組語的就不太清楚了...
: 只是據說組語寫得爛,效率可能會比C加優化出來效果差就是.
: 其實如果要再極端一點,我覺得直接把WEB SERVICE跟動態網頁直接綁到
: http server程式核心的部分去(當然如此一來變成要自撰夠穩固的http server了...),
: 少掉幾層中介,應該又更快了.
以下會含有大陸術語, 請海涵.
基本上, 想要快速處理request, 不要去鉆語言執行效率的牛角尖, 而要從算法上著手.
如果真的需要那麼高的效率, 使用C語言足夠, 現有編譯器的能力已經可以讓C語言的目標
代碼足夠優化到你手工寫也不過如此的地步. 實際上, C語言的設計目標就是"可以run在各
種platform的assembly." (好多術語不知道台灣講法, 只好中英夾雜了)
而解釋器和vm也常常會採用jit的技術, 省去解釋bytecode的時間.
另外就是, http server確實也提供了接口讓你去直接擴展server, 以滿足高效處理
request的需求, 比如apache就提供了module機制.
但是, 真的不用這麼極端, 因為大多數情況下, 你的瓶頸會是在database和io, cache是解
決問題的良方.
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.246.97.136
推
07/01 13:49, , 1F
07/01 13:49, 1F
→
07/01 13:50, , 2F
07/01 13:50, 2F
討論串 (同標題文章)
Soft_Job 近期熱門文章
34
109
PTT職涯區 即時熱門文章
69
111