Re: [討論] 為什麼不要用c++寫網站
看板Soft_Job (軟體人)作者hizuki (真女主角愛與正義的天使)時間5月前 (2024/06/20 17:29)推噓3(3推 0噓 39→)留言42則, 11人參與討論串4/5 (看更多)
※ 引述《Lordaeron (Terry)》之銘言:
: CGI 這東西,看了這麼多人回,都沒人講出來,表示這邊的都是高手了。
: 資O會,以前某套內部的系統是CGI 當底的,後面接的是C。
其實也沒有那麼陌生,經歷過php, Rails時代的人都有被cgi折磨過
只不過現代server side都轉向JavaEE那個樣子,類似Asp.net那樣依附個CGI還是
蠻少見的。
現代的web無論是spring還是go那邊都是走向自己從network connection開始管。
(我知道Spring有內置Tomcat)
: 所以, 在這種基本上是I/O bound 的工作面前,用以CPU bound 為強項的語言。
: 是不是大材小用了?
其實C/C++這種可以編譯爲native code的還是快,但是一般的編寫方式用用不上。
網路連線其實沒有那麼burst的,一堆時間都在idle,不然poll(), coroutines發明
出來做什麼。也畢竟是HTTP/2以前的連線非常沒有效率,每段msg,先是廢話一堆。
gRPC也只是把header的廢話個壓縮掉。
這也是爲什麼有javascript來拉json這樣的東西出現,web中一堆沒有用的資料都是
css這樣的東西,真實有用的資料用類似out of band的手段丟一丟還比較快。
就算這個protocol進化到gRPC protobuf那麼沒有浪費,抱歉現在的socket編程根本
跳不開CPU copy,從Transport layer過來那邊kernel給你copy到userspace去,
然後reply的時候又userspace 給copy到kernel去包一包。
我前一段時間想弄個VPN程式看到這邊都要吐血了,是有DMA方案啦,DPDK。
沒幾個平臺支援,想要部署到Android或者iOS都不可能。
: 但當我看到它每一個取char * 傳進來的字串長度是用sizeof 時,就該明白....讚啦。
: 還好它只是檢查它長度是否大於0。
native code的東西對這種memory boundary就很煩,有debug的人會發現,比如在
一個64bits memory的OS上,兩個32bits變數我只watch一個,結果旁邊variable
動一下,我這邊給拉起來。
string判斷size一不小心沒有null terminator就crash了,string類的function
用之前一定要看看有沒有n version, strnlen()就解決問題了沒有?
在ptt這樣不支援UTF-8的可沒有這種好事。
Jave就沒有這種煩惱了,也沒有Pass by reference這樣這的煩惱。
寫C++的時候要經常看看是不是move還是copy這種屁事.
: 推 alihue: 推,其實現代 jvm 速度已經沒有那麼慢了 06/20 08:24
: → superpandal: jvm佔用記憶體阿 外加某些工具啟動龜速 運作也馬乎也 06/20 10:05
: → superpandal: 沒什麼優勢 06/20 10:06
ART講記憶體處理不好是還可以,GraalVM就沒這個問題了
至於ready time這個您有load過一堆c++ libraries,要處理symbols也很慢
: 推 brucetu: c++ compile真的是很耽誤開發 06/20 11:10
: 推 tsaigi: sizeof XDDD 很有畫面 06/20 12:35
: 推 qwe78971: 確實 每次compile 也超耗時 06/20 13:51
C還好,C++真是痛苦,template每次展開都是毀天滅地般的時間。
還好有更糟的rust
--
你比較喜歡哪一個?
當年不是黨國大老但是被江浙財團捧紅的中國帥哥
跟同樣擁兵一方的諸侯約會裁軍結果半途諸侯們爽約,平常有在寫日記的莊嚴男人開始發飆
在旁邊讀著荒漠甘泉冷眼旁觀看著薔薇戰爭的人,為了中國的事情爭吵
別國調侃是不是中國總統,義正詞嚴的說著我是民族的燈塔的威嚴老先生
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 192.147.44.15 (美國)
※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1718875775.A.9B3.html
→
06/20 18:05,
5月前
, 1F
06/20 18:05, 1F
→
06/20 18:06,
5月前
, 2F
06/20 18:06, 2F
→
06/20 18:10,
5月前
, 3F
06/20 18:10, 3F
→
06/20 18:10,
5月前
, 4F
06/20 18:10, 4F
→
06/20 18:12,
5月前
, 5F
06/20 18:12, 5F
→
06/20 18:15,
5月前
, 6F
06/20 18:15, 6F
→
06/20 18:24,
5月前
, 7F
06/20 18:24, 7F
→
06/20 18:24,
5月前
, 8F
06/20 18:24, 8F
→
06/20 18:26,
5月前
, 9F
06/20 18:26, 9F
→
06/20 18:33,
5月前
, 10F
06/20 18:33, 10F
→
06/20 18:58,
5月前
, 11F
06/20 18:58, 11F
→
06/20 19:26,
5月前
, 12F
06/20 19:26, 12F
→
06/20 19:26,
5月前
, 13F
06/20 19:26, 13F
→
06/20 19:48,
5月前
, 14F
06/20 19:48, 14F
→
06/20 19:55,
5月前
, 15F
06/20 19:55, 15F
→
06/20 19:57,
5月前
, 16F
06/20 19:57, 16F
→
06/20 20:04,
5月前
, 17F
06/20 20:04, 17F
→
06/20 20:04,
5月前
, 18F
06/20 20:04, 18F
→
06/20 20:10,
5月前
, 19F
06/20 20:10, 19F
→
06/20 21:00,
5月前
, 20F
06/20 21:00, 20F
→
06/20 21:00,
5月前
, 21F
06/20 21:00, 21F
推
06/20 21:26,
5月前
, 22F
06/20 21:26, 22F
好是好,擴展蠻麻煩的。
kernel中不能隨便spin lock的,一個deadlock真的全世界陪葬
→
06/20 22:09,
5月前
, 23F
06/20 22:09, 23F
→
06/20 22:36,
5月前
, 24F
06/20 22:36, 24F
→
06/20 22:42,
5月前
, 25F
06/20 22:42, 25F
→
06/20 22:42,
5月前
, 26F
06/20 22:42, 26F
→
06/20 23:22,
5月前
, 27F
06/20 23:22, 27F
→
06/20 23:22,
5月前
, 28F
06/20 23:22, 28F
→
06/20 23:25,
5月前
, 29F
06/20 23:25, 29F
→
06/20 23:26,
5月前
, 30F
06/20 23:26, 30F
(u)int32_t其實在PC/Server這樣的地方用,或者需要定義fixed length的data structure
都是沒有問題的。
但是麻煩還是不要都用32bits,int的意義在於一般都是compiler設定效能最佳化到最好的
data type。stm8也是這樣講,就算int在這個8bits MCU上是32bits長。
至於爲什麼不用更大的data type來存資料比較保險,就有一個paramter pass的問題,
特別是CISC的暫存器又少,大一點就要堆到memory中去了
推
06/21 02:04,
5月前
, 31F
06/21 02:04, 31F
→
06/21 02:04,
5月前
, 32F
06/21 02:04, 32F
※ 編輯: hizuki (192.147.44.15 美國), 06/21/2024 14:30:14
推
06/21 20:44,
5月前
, 33F
06/21 20:44, 33F
→
06/21 20:44,
5月前
, 34F
06/21 20:44, 34F
→
06/21 20:44,
5月前
, 35F
06/21 20:44, 35F
web不是只有Java EE,26的Bilibili的Go洩露事件,說明Go使用比人想象的廣
另外我的工作和IO蠻有關係的,怎麼不能評論
→
06/21 23:27,
5月前
, 36F
06/21 23:27, 36F
→
06/21 23:46,
5月前
, 37F
06/21 23:46, 37F
→
06/21 23:47,
5月前
, 38F
06/21 23:47, 38F
→
06/21 23:50,
5月前
, 39F
06/21 23:50, 39F
→
06/22 11:06,
5月前
, 40F
06/22 11:06, 40F
→
06/22 11:06,
5月前
, 41F
06/22 11:06, 41F
Android一票公司,當然web方面甚至說涉及到網路程式都是spring一本道
※ 編輯: hizuki (154.3.4.179 美國), 06/22/2024 18:44:58
→
06/23 07:37,
5月前
, 42F
06/23 07:37, 42F
討論串 (同標題文章)
Soft_Job 近期熱門文章
50
200
15
92
PTT職涯區 即時熱門文章