楼主: 二当家
跳转到指定楼层
上一主题 下一主题
收起左侧

[职场感言] C++ 领域

   
地里匿名用户
🔗
匿名用户-WHZVQ  | 添加认证 | 2023-4-12 16:49:35 来自APP
madalpaca 发表于 2023-04-11 13:13:33
真正能写C的都能写C++,反过来不一定。一般都我会注意如果一个人只会会用smart pointer或者C++ 1x那些fancy的东西,那就自动降级为Java programmer。
有smart pointer为啥不用…destructor里面写个delete写一堆判断条件,然后来个新人接过你的codebase随便加两行就segfault
回复

使用道具 举报

🔗
laixl2010 2023-4-13 05:10:15 | 只看该作者
全局:
本帖最后由 laixl2010 于 2023-4-12 14:13 编辑
匿名用户 发表于 2023-4-12 01:49
有smart pointer为啥不用…destructor里面写个delete写一堆判断条件,然后来个新人接过你的codebase随便加 ...
. 1point3acres
smart pointer开销太大了。新手瞎用有一堆性能问题。segfault是最容易debug的错误,根本不在乎。
回复

使用道具 举报

全局:
wangpugod2003 发表于 2023-04-11 02:15:16
借宝地求Modern C++有哪些简单好入门的github开源project或教程啊?
有C++基础想找个open source的project跟着学下。
A tour of c++ third edition.1point3acres

本帖子中包含更多资源

您需要 登录 才可以下载或查看附件。没有帐号?注册账号

x
回复

使用道具 举报

全局:
本帖最后由 摸鱼专用小马甲 于 2023-4-13 23:23 编辑
匿名用户 发表于 2023-4-12 01:49
有smart pointer为啥不用…destructor里面写个delete写一堆判断条件,然后来个新人接过你的codebase随便加 ...

如果你在一些比较注重性能的公司做过的话,很大概率是不用smart pointer的,都是自己inhouse做一套的。之前我工作过的地方,连thread都是自己inhouse写的,甚至还写了类似go那种协程,更别提string还有hashmap这些了。当然了,肯定也不会要手写的destructor的程度,应该都是都有大佬写了一套基类。
回复

使用道具 举报

地里匿名用户
🔗
匿名用户-OPYJL  | 添加认证 | 2023-6-2 11:20:30
laixl2010 发表于 2023-4-12 16:10
smart pointer开销太大了。新手瞎用有一堆性能问题。segfault是最容易debug的错误,根本不在乎。

能否仔细说说smart pointer的开销问题和对性能的影响 很感兴趣

评分

参与人数 1大米 +1 收起 理由
pz1y + 1 欢迎分享你知道的情况,会给更多积分奖励!

查看全部评分

回复

使用道具 举报

地里匿名用户
🔗
匿名用户-OPYJL  | 添加认证 | 2023-6-2 11:21:24
摸鱼专用小马甲 发表于 2023-4-14 01:21
如果你在一些比较注重性能的公司做过的话,很大概率是不用smart pointer的,都是自己inhouse做一套的。之 ...

能否仔细说说为什么不用STL的smart pointer而要自己写?

评分

参与人数 1大米 +1 收起 理由
pz1y + 1 欢迎来一亩三分地论坛!

查看全部评分

回复

使用道具 举报

地里匿名用户
🔗
匿名用户-OPYJL  | 添加认证 | 2023-6-2 11:23:07
wangpugod2003 发表于 2023-4-12 02:45. 1point3acres.com
C++ 1x那些fancy的东西,感觉也比JAVA难很多啊。

java应该不需要理解内存管理吧 C++上手门槛确实高

评分

参与人数 1大米 +1 收起 理由
pz1y + 1 很有用的信息!

查看全部评分

回复

使用道具 举报

地里匿名用户
🔗
匿名用户-OPYJL  | 添加认证 | 2023-6-2 11:24:56
摸鱼专用小马甲 发表于 2023-4-11 01:20
写c++一眼就看出写的好不好,如果恰好还做async,那什么放在heap里什么放在stack里,lifecycle是什么这些都 ...

我很好奇真的有很多公司在product code里用lambda么 这种code review能过么?不怕日后debug晕头转向?

评分

参与人数 1大米 +1 收起 理由
pz1y + 1 欢迎来一亩三分地论坛!

查看全部评分

回复

使用道具 举报

地里匿名用户
🔗
匿名用户-3MRJ6  | 添加认证 | 2023-6-2 12:16:32
匿名用户 发表于 2023-6-1 20:20
能否仔细说说smart pointer的开销问题和对性能的影响 很感兴趣

很简单的一个例子,shared pointer你每次加减reference count的时候是需要update一个atomic counter的,这个在某些computation heavy的情况是可以很costly的。一个优化方式就是,从某个点起,你知道往下make function call的时候不会有life cycle的问题,那么你可以把raw pointer取出来然后传下去用,过了这个点之后还是可以leverage shared pointer来manage memory.

某些情况下shared pointer的atomic counter operations可以占掉x0%的cpu time。

评分

参与人数 1大米 +1 收起 理由
fcp + 1 给你点个赞!

查看全部评分

回复

使用道具 举报

🔗
laixl2010 2023-6-2 22:23:04 | 只看该作者
全局:
匿名用户 发表于 2023-6-1 20:20
能否仔细说说smart pointer的开销问题和对性能的影响 很感兴趣

smart pointer是一个对象,当参数用有构造析构拷贝的开销。如果你的数据足够大,这些开销是很大的overhead。还有很多时候根本就不想要垃圾回收,用来smart pointer就没有这个灵活性了。连string这么简单的stl调用几亿次也是很大的开销。有的人把string定义到loop里面了,结果时间都花在构造析构上了。
C++的stl根本就不是为了高性能设计的,是给不会用C的人用的。要高性能根本就不应该用。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号
职场达人
  • ↑ 本版用于讨论职场各种干货话题,闲聊请去🔗聊聊或者🔗匿名版
  • ❌ 本版严禁水贴,引战,发布广告,拉群,贴个人联系方式,扣分无警告
  • ☑ 求职、面经等去 🔗北美求职和 🔗回国求职大区,刷题和学习请去 🔗终身学习大区
  • ☑ 请去专版发布 🔗内推, 🔗招聘信息,和讨论 🔗创业内容
  • ☑ PIP / DevList/ Need Support 等话题也已开设 🔗专版

本版积分规则

>
快速回复 返回顶部 返回列表