V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  ipwx  ›  全部回复第 56 页 / 共 200 页
回复总数  4000
1 ... 52  53  54  55  56  57  58  59  60  61 ... 200  
2021-09-02 00:17:09 +08:00
回复了 zxCoder 创建的主题 C++ c++在公司里一般是做什么的啊
@shijingshijing 那行吧,只能说这是用 human labor 堆出来的重量级工程。

但凡是地球上跑的软件项目就不走这条路了,因为这要花太多人力资源。
2021-09-01 14:20:08 +08:00
回复了 zxCoder 创建的主题 C++ c++在公司里一般是做什么的啊
@bruce0 说起指令流水线和 data hazard 其实还可能会产生指令的乱序执行。比如老生常谈的

if (condition) {
with (lock) {
if (condition) { ...

这种 double-check-lock 在乱序执行面前会被虐成渣渣。解决方案是加入 memory fence 。

----

总之为啥 C++ 难,是因为太靠近硬件,需要掌握这些底层抽象才能用好。
2021-09-01 14:17:30 +08:00
回复了 zxCoder 创建的主题 C++ c++在公司里一般是做什么的啊
@bruce0 哦对用机器码也不保险。

如果你用的是通用芯片,现代通用芯片在机器码的下面都有很多你“控制不了”的行为。比如英特尔的芯片微指令,一个机器指令其实是拆成若干指令,然后在芯片上有指令流水线(同一瞬间其实有多个指令的不同步骤正在执行)。这些指令“并行”会导致一些 data harzard 。当然,芯片帮我们处理好了。

但是因为是并行流水线所以会带来一些其他问题。比如遇到条件判断,现代芯片都会猜测这条语句的结果,然后提前进入某个分支执行。如果猜错了就“回滚”。对,分值预测就会导致你“执行时间不可控”。

还有比如 cacheline 、L1~L3 cache,atomic 指令,store buffer queue (在一个核上非 atomic 指令更新数据,另一个核不一定马上能看到)。这些都是你“不可控”的抽象。

----

现代计算机就是在一层一层你不可控的抽象上建立起来的。C++ 的各种语法和芯片上的这些复杂机制并没有本质差别。要理解、掌握这些抽象后面的原理,利用这些抽象才对嘛。
2021-09-01 14:10:00 +08:00
回复了 zxCoder 创建的主题 C++ c++在公司里一般是做什么的啊
@bruce0 构造函数、深拷贝、浅拷贝,进化到 C++17 就是 move 语法等等。这些都是有规范的,一个能通过各种测试的编译器,用这些高级特性你都知道会发生什么。包括 -O3 。写出没有 Undefined Behaviour (遵守规范所以编译器也能给你完全能控制的代码)是 C++ 程序员重要的基本功啊。
2021-09-01 14:08:51 +08:00
回复了 zxCoder 创建的主题 C++ c++在公司里一般是做什么的啊
@bruce0 可是,C++ 的 zero-abstraction 是有规范的啊。

在 template 方面根本就没有 UB 。如果你认为不是手写的就是 undeterministic,我觉得你应该用机器码才行啊。
2021-09-01 11:35:58 +08:00
回复了 zxCoder 创建的主题 C++ c++在公司里一般是做什么的啊
@shijingshijing (正常写函数都不敢循环嵌套三层, 不然根本没法维护)
2021-09-01 11:34:53 +08:00
回复了 zxCoder 创建的主题 C++ c++在公司里一般是做什么的啊
@tianming1992 可是,template 和动态内存毫无关系啊。。。倒不如说用了 template 让 C++ 省了很多需要动态内存申请的情况。不然怎么叫 zero-cost abstraction ?

另外 template poly 可以在不加虚函数表的情况下实现一定的继承多态之类的特性。

所以你到底会不会用 C++
2021-08-31 23:51:02 +08:00
回复了 zxCoder 创建的主题 C++ c++在公司里一般是做什么的啊
@shijingshijing 神 tm template undeterministic 。
2021-08-31 15:43:54 +08:00
回复了 zxCoder 创建的主题 C++ c++在公司里一般是做什么的啊
@shijingshijing 可是 C++ 的 template 才是 zero-abstraction 的精华啊
2021-08-31 13:26:55 +08:00
回复了 w468750 创建的主题 职场话题 学生+初入职场的未来选择问题
前十年是房贷远远跑赢通胀 => 房价跑赢通胀
2021-08-31 13:26:42 +08:00
回复了 w468750 创建的主题 职场话题 学生+初入职场的未来选择问题
另外从这个角度出发分析的话,现在上房贷买房子不太合算,虽然也不会大亏。

前十年是房贷远远跑赢通胀。后二三十年肯定跑不赢。房贷利率应该会超过房价的涨幅。但是也不会多太多,真背了房贷也就认了,也不是不行。
2021-08-31 13:23:29 +08:00
回复了 w468750 创建的主题 职场话题 学生+初入职场的未来选择问题
现在的出路只有一个,拖,靠二十年三十年把房价泡沫而消化掉。所以以租代售是未来二三十年一定会发生的事情。
2021-08-31 13:22:40 +08:00
回复了 w468750 创建的主题 职场话题 学生+初入职场的未来选择问题
按你这话那绝大部分年轻人都没资格买房买车了
====

@w468750 说句不好听的,以租代售是将来十年会逐步发生的事情。又不敢真的让房价腰斩,房贷断供潮会扩散到全部行业,然后普通人会遭遇比背房贷更恐怖的事情。而且这不是杀几个富人就搞的定的事情,因为全国几百上千万套住宅的房贷叠在一块儿,把榜上有名的富人杀光了都填不满。
2021-08-31 13:20:22 +08:00
回复了 w468750 创建的主题 职场话题 学生+初入职场的未来选择问题
要么提升收入要么降低欲望
2021-08-31 09:53:34 +08:00
回复了 CamD 创建的主题 Python 如何正确配置 vscode Python
楼主你先说清楚是当前项目的包无法导入还是别的项目的包无法导入。

姑且认为是后者,后者是需要配置的。两条路:

1. 用标准的 python 包结构,写 setup.py ,这样你自己的包就能 pip install . 安装了。
2. 把你自己的包扔到一个统一的地方,然后把那个路径加 PYTHONPATH 。
2021-08-30 21:24:21 +08:00
回复了 zxCoder 创建的主题 C++ c++在公司里一般是做什么的啊
@agagega 第三方其实还行,linux 上 conan 我用的很舒服。
2021-08-30 21:16:45 +08:00
回复了 icemanpro 创建的主题 C++ 如何将 list 的值传给函数的可变参数?
我觉得这是个 XY problem 。

楼主你能不能把你的原始需求说一说,C++ 不会这么思考问题的。
2021-08-30 21:14:55 +08:00
回复了 zxCoder 创建的主题 C++ c++在公司里一般是做什么的啊
@zxCoder 这些经验算不得经验吧,学起来不就四五天
2021-08-30 16:40:51 +08:00
回复了 CatCode 创建的主题 数据库 “微型业务”用啥数据库软件啊?
sqlite 反正能用 orm
2021-08-29 18:12:35 +08:00
回复了 killergun 创建的主题 问与答 为什么 c++开发总喜欢定义别名呢(typedef/#define)
另外 const Fn1& const Fn2& 更现代一点可能会用 Fn1&& Fn2&& ,不过我觉得 -O3 就没去别了。
1 ... 52  53  54  55  56  57  58  59  60  61 ... 200  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5475 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 29ms · UTC 09:11 · PVG 17:11 · LAX 01:11 · JFK 04:11
Developed with CodeLauncher
♥ Do have faith in what you're doing.