顯示廣告
隱藏 ✕
※ 本文為 dinos 轉寄自 ptt.cc 更新時間: 2013-06-29 14:24:24
看板 Soft_Job
作者 erspicu (.)
標題 [閒聊] 效率最高的動態網頁處理法
時間 Sat Jun 29 12:06:15 2013



想討論的是比較極端的狀況,意思是說特例.


前面有人說拿組語寫網頁,我還真的看過....

大概是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了...),

少掉幾層中介,應該又更快了.


--
※ 發信站: 批踢踢實業坊(ptt.cc)
※ 編輯: erspicu         來自: 61.70.105.149        (06/29 12:09)
※ 編輯: erspicu         來自: 61.70.105.149        (06/29 12:10)
CRPKT:這也要看你考慮的目標是哪種類型的動態網頁1F 06/29 13:38
CRPKT:因為有時候瓶頸不是在 dhtml 產生本身
現在我猜似乎都數都是卡在DB這環就是
不過我覺得也別太小看建立動態網頁本身的邏輯環節
FB有聽過是PHP轉成C後編譯的.轉換器叫hiphop
※ 編輯: erspicu         來自: 61.70.105.149        (06/29 14:07)

--
※ 看板: dinos 文章推薦值: 0 目前人氣: 0 累積人氣: 144 
作者 erspicu 的最新發文:
點此顯示更多發文記錄
guest
x)推文 r)回覆 e)編輯 d)刪除 M)收藏 ^x)轉錄 同主題: =)首篇 [)上篇 ])下篇
看板名稱: 確定(Enter) 取消(Esc) 搜尋(Space)
查詢帳號: 確定(Enter) 取消(Esc) 搜尋(Space)
搜尋: m)m文 b)進板 c)未分類 a)作者 /)標題 q)取消?[q]

搜尋 送出(Enter) 取消(Esc)

回覆文章至: f)看板 m)作者信箱 b)兩者皆是 q)取消?[f]
要引用原文嗎? y)引用原文 n)不引用 a)全部回覆 r)複製原文 q)取消?[y]
轉錄本文章於看板: 1)使用連結 2)使用複製 q)取消 ?[1]
轉寄至站內信箱於使用者: 確定(Enter) 取消(Esc)
轉寄至站內信箱於使用者: 確定(Enter) 取消(Esc)
修改文章標題為: 確定(Enter) 取消(Esc)
修改文章標題為: 確定(Enter) 取消(Esc) 全部(a)

確定要刪除這篇文章?(可按大U救回) 確定(Enter) 取消(Esc)

刪除理由:

確定(Enter) 取消(Esc)
加到這個分類: 確定(Enter) 下一層(→) 回上層(←) 取消(Esc)
你覺得這篇文章: 1)真讚 2)真瞎 q)取消?[1] (再選一次即可收回)
你覺得這篇文章: 1)值得推薦 2)表示反對 3)單純註解 q)取消?[3]
guest
預覽(Enter) 取消(Esc)
上傳圖片
按ctrl+Enter可輸入下一行。
guest
確定要送出? 確定(Enter) 取消(Esc) 繼續(e)
搜尋: 送出(Enter) 取消(Esc)

▏▎▍▌▋▊▉ 請按任意鍵繼續