Soft_Job 板


LINE

※ 引述《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://webptt.com/m.aspx?n=bbs/Soft_Job/M.1718875775.A.9B3.html
1F:→ superpandal: graalvm有反射問題阿 不想寫映射設定 這部份go好多了 06/20 18:05
2F:→ superpandal: 雖然go的反射難用一點 06/20 18:06
3F:→ superpandal: java你不透過反射是很難hack一些東西搞動態的 變量因 06/20 18:10
4F:→ superpandal: 封裝搞的不可見超級麻煩 06/20 18:10
5F:→ superpandal: 都什麼年代了還搞一堆設定 設定都一堆坑 06/20 18:12
6F:→ hizuki: 我其實不知道reflection有什麼用,c++不習慣RTTI的東西 06/20 18:15
7F:→ superpandal: 你的程式如果都是固定邏輯確實可以不用 但要多寫還多 06/20 18:24
8F:→ superpandal: 很多東西 06/20 18:24
9F:→ superpandal: 很多框架也極依賴反射 06/20 18:26
10F:→ hizuki: 我spring只用了大概3個小時就沒碰了,我本業不是web這邊的 06/20 18:33
11F:→ testPtt: c++builder那套元件拉一拉就可以happy了 06/20 18:58
12F:→ BoXeX: C就很白癡 一堆型態定義大家亂玩 06/20 19:26
13F:→ BoXeX: 最後為求保險都在用int32_t 普通的int沒人在用 06/20 19:26
14F:→ labbat: int是給閉起門來造車的開發人員的軟體糖,不適合大規模用 06/20 19:48
15F:→ BoXeX: 沒 int32_t 才是語法糖 你看stdint.h就知道 06/20 19:55
16F:→ Lordaeron: 你是指啥時的stdint.h? 06/20 19:57
17F:→ BoXeX: 一堆stdint.h都是吧 int32_t 還好可能x86大部分用int 06/20 20:04
18F:→ BoXeX: int64_t 在不同平台會用不同東西來定義 06/20 20:04
19F:→ Lordaeron: 我問的是"啥時"...如果不明白,東西是有歷史的。 06/20 20:10
20F:→ BoXeX: 你想講啥就直接說吧 一個在不同版本 平台 廠牌 06/20 21:00
21F:→ BoXeX: 會長不一樣的東西 你跑來問時間 到底是想幹嘛 06/20 21:00
22F:推 s25g5d4: vpn 那段,kernel wg 會比較好嗎? 06/20 21:26
好是好,擴展蠻麻煩的。 kernel中不能隨便spin lock的,一個deadlock真的全世界陪葬
23F:→ Apache: 怎麼不用Rust 06/20 22:09
24F:→ Lordaeron: int32_t 是C99 的事了。C99 以前怎麼辨?不用int用什麼? 06/20 22:36
25F:→ Lordaeron: 而有它也只是為了讓不同的compiler有相同的反應。 06/20 22:42
26F:→ Lordaeron: 免得像long 這樣。 06/20 22:42
27F:→ BoXeX: 阿所以我說"後來"都用int32_t 或是說他是語法糖 06/20 23:22
28F:→ BoXeX: 有問題嗎 06/20 23:22
29F:→ BoXeX: *最後 06/20 23:25
30F:→ BoXeX: 而且 如果是C89前 大不了也是自己define類似的東西 06/20 23:26
(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中去了
31F:推 ohmylove347: 為啥要反射?用FP寫法,再不濟寫個策略模式也可以吧 06/21 02:04
32F:→ ohmylove347: ,還是封裝太深東西撈不到? 06/21 02:04
※ 編輯: hizuki (192.147.44.15 美國), 06/21/2024 14:30:14
33F:推 iamOsaka: 不是...你spring只碰過三小時哪有什麼好評論的,基本上 06/21 20:44
34F:→ iamOsaka: 之所以用Java做web就是因為Spring生態系太強太豐富,非 06/21 20:44
35F:→ iamOsaka: 常好用 06/21 20:44
web不是只有Java EE,26的Bilibili的Go洩露事件,說明Go使用比人想象的廣 另外我的工作和IO蠻有關係的,怎麼不能評論
36F:→ Lordaeron: 哈...spring 未出生java 就已在做web 了。關spring啥事 06/21 23:27
37F:→ superpandal: 為什麼用反射? 因為不少東西都在用 工作上能讓你選 06/21 23:46
38F:→ superpandal: 擇的情況不多 通常都是框架與lib封裝太深 限制你的應 06/21 23:47
39F:→ superpandal: 用 你用其它的也不是完美 06/21 23:50
40F:→ abccbaandy: 現在哪間公司java不用spring? 銀行都有用了...關 06/22 11:06
41F:→ abccbaandy: spring啥事勒... 06/22 11:06
Android一票公司,當然web方面甚至說涉及到網路程式都是spring一本道 ※ 編輯: hizuki (154.3.4.179 美國), 06/22/2024 18:44:58
42F:→ Lordaeron: C99要"解決問題",但被人說成是candy,我..crush... 06/23 07:37







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:Gossiping站內搜尋

TOP