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/cn.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