忘记密码   免费注册 查看新帖 | 论坛精华区

ChinaUnix.net

  平台 论坛 博客 认证专区 大话IT HPC论坛 徽章 文库 沙龙 自测 下载 频道自动化运维 虚拟化 储存备份 C/C++ PHP MySQL 嵌入式 Linux系统
12下一页
最近访问板块 发新帖
查看: 1766 | 回复: 17

[C] 现在C++的性能可以超过C了吗? [复制链接]

论坛徽章:
54
2017金鸡报晓
日期:2017-02-08 10:39:42操作系统版块每日发帖之星
日期:2016-03-08 06:20:00操作系统版块每日发帖之星
日期:2016-03-07 06:20:00操作系统版块每日发帖之星
日期:2016-02-22 06:20:00操作系统版块每日发帖之星
日期:2016-01-29 06:20:00操作系统版块每日发帖之星
日期:2016-01-27 06:20:00操作系统版块每日发帖之星
日期:2016-01-20 06:20:00操作系统版块每日发帖之星
日期:2016-01-06 06:20:0015-16赛季CBA联赛之江苏
日期:2015-12-21 20:00:24操作系统版块每日发帖之星
日期:2015-12-21 06:20:00IT运维版块每日发帖之星
日期:2015-11-17 06:20:002015亚冠之广州恒大
日期:2015-11-12 10:58:02
发表于 2017-08-31 14:46 |显示全部楼层
我已经很长时间没用C/C++了,突然有个群里讨论说现在C++性能要比C快,感到有点吃惊,特来求证一下。

论坛徽章:
89
水瓶座
日期:2014-04-01 08:53:31天蝎座
日期:2014-04-01 08:53:53天秤座
日期:2014-04-01 08:54:02射手座
日期:2014-04-01 08:54:15子鼠
日期:2014-04-01 08:55:35辰龙
日期:2014-04-01 08:56:36未羊
日期:2014-04-01 08:56:27戌狗
日期:2014-04-01 08:56:13亥猪
日期:2014-04-01 08:56:02亥猪
日期:2014-04-08 08:38:58每日论坛发贴之星
日期:2015-08-28 06:20:00每日论坛发贴之星
日期:2015-12-28 06:20:00
发表于 2017-08-31 21:00 |显示全部楼层
回复 1# lsstarboy

C和C++都只是一个文本规范,不能执行的。

如果要比较速度,要看具体的实现以及测试内容。

论坛徽章:
9
程序设计版块每日发帖之星
日期:2015-10-18 06:20:00程序设计版块每日发帖之星
日期:2015-11-01 06:20:00程序设计版块每日发帖之星
日期:2015-11-02 06:20:00每日论坛发贴之星
日期:2015-11-02 06:20:00程序设计版块每日发帖之星
日期:2015-11-03 06:20:00程序设计版块每日发帖之星
日期:2015-11-04 06:20:00程序设计版块每日发帖之星
日期:2015-11-06 06:20:00数据库技术版块每周发帖之星
日期:2015-12-02 15:02:47数据库技术版块每日发帖之星
日期:2015-12-08 06:20:00
发表于 2017-09-01 13:50 |显示全部楼层
本帖最后由 wlmqgzm 于 2017-09-01 14:57 编辑

现在很多C++程序的性能都远远超越了C语言, 因为C++靠的是多组代码的集体的力量, 是一种综合性能的体现.

因为我们就是做C++下高性能数据库的, 我们做的C++数据库haisql_memcache, 指令集与memcache兼容, 与C语言编写的memcache相比, 4核下TCP/IP接口查询性能已经比原生的mamcache提升了70%, 占用内存更少,
4.1KByte的数据查询性能4核3.2GCPU下高达38万QPS, 已经只受限于DDR1600内存带宽,
单线程也比redis更快, 多线程快N倍, 占用内存也更少, 尤其是4.1K这样比4K略大一点的100万数据, redis占用8G, haisql_memcache只占4.1G.
由于主要的开销是TCP/IP系统调用和内存拷贝的开销, 除掉这两个之外, C++代码综合性能已经比C语言代码有 数量级 的提升.

主要的原因是:各种基于新算法研发的库都是C++语言写的, 针对多核CPU有了大量的优化, 很多公司根据现有Intel CPU的多核特性, 研发了全新的 C++ 底层库.
1) 新的自研的 hash_map / hash_set 库性能比 最快的std::unordered_map 性能提升70%以上, 使用内存更少, 比C语言自带的各种类似的库查询性能 快 N 倍. 原因是 新算法被发明, 使用基于环形队列的数据结构, 原因就是cache更友好.
2) 自研的 共享指针 shared_ptr 很多用例性能已经跟裸指针的性能一样或者更好, 性能提升的关键在于cache的友好性, 以及不需要 if XXX ==nullptr 之类的判断.
3) 自研的 无锁无等待队列 class wait_free_queue 性能传送数据单队列最大每秒3亿次, 超快的跨线程数据传输,
    传送std::function对象性能高达每秒1500-3000万次, 实现了超快的微线程调度,
    普通C语言的线程调度能力只有每秒10万次, 没有微线程这样的神器
    跨线程传输数据, C语言里面没有这样的神器, 必须要用锁,
4) 自研的 int_to_string / int_to_chars 之类的整数转 字符串 函数, 性能提升1- 10倍, 原因是美国数学家发现了将除10, 转换为 乘法的新算法,
5) 全自动对象回收循环利用之类的库,  对于部分带clear()函数的可循环对象 std::string 之类的, 完全可以循环反复使用, 没有malloc/free之类的开销, 还减少了对象创建和销毁的开销.
6) 更快的内存pool库,
7) 自研的spin_lock, 加入了intel技术建议书的最新内容, 比现有spin_lock库的高冲突下性能提升 X倍以上.
    spin_lock_shared 读写锁支持 读锁升级为写/ 写锁降级为读锁, 性能比现有 共享锁性能提升N倍, 思路类似 facebook 的开源C++库 Folly库里面的共享锁
.....

总之, C++语言一直在进步中, 各种新特性不断的加入,各公司也在不断自研最新的底层库, 包含了各种新特性和新技术, C语言库却处于无人更新的情况.

论坛徽章:
210
2022北京冬奥会纪念版徽章
日期:2015-08-10 16:30:322015亚冠之全北现代
日期:2016-05-11 17:05:27操作系统版块每日发帖之星
日期:2016-05-10 19:23:04操作系统版块每日发帖之星
日期:2016-05-10 19:23:04操作系统版块每日发帖之星
日期:2016-05-10 19:23:04操作系统版块每日发帖之星
日期:2016-05-10 19:23:04操作系统版块每日发帖之星
日期:2016-05-10 19:22:58数据库技术版块每日发帖之星
日期:2016-05-10 19:23:04数据库技术版块每日发帖之星
日期:2016-05-10 19:23:04操作系统版块每日发帖之星
日期:2016-05-10 19:22:58操作系统版块每日发帖之星
日期:2016-05-10 19:22:58操作系统版块每日发帖之星
日期:2016-05-10 19:22:58
发表于 2017-09-02 19:42 来自手机 |显示全部楼层
不要偏激,说c不行,那是你用的不行

论坛徽章:
210
2022北京冬奥会纪念版徽章
日期:2015-08-10 16:30:322015亚冠之全北现代
日期:2016-05-11 17:05:27操作系统版块每日发帖之星
日期:2016-05-10 19:23:04操作系统版块每日发帖之星
日期:2016-05-10 19:23:04操作系统版块每日发帖之星
日期:2016-05-10 19:23:04操作系统版块每日发帖之星
日期:2016-05-10 19:23:04操作系统版块每日发帖之星
日期:2016-05-10 19:22:58数据库技术版块每日发帖之星
日期:2016-05-10 19:23:04数据库技术版块每日发帖之星
日期:2016-05-10 19:23:04操作系统版块每日发帖之星
日期:2016-05-10 19:22:58操作系统版块每日发帖之星
日期:2016-05-10 19:22:58操作系统版块每日发帖之星
日期:2016-05-10 19:22:58
发表于 2017-09-02 19:43 来自手机 |显示全部楼层
理论上讲cpp是用c实现的

论坛徽章:
210
2022北京冬奥会纪念版徽章
日期:2015-08-10 16:30:322015亚冠之全北现代
日期:2016-05-11 17:05:27操作系统版块每日发帖之星
日期:2016-05-10 19:23:04操作系统版块每日发帖之星
日期:2016-05-10 19:23:04操作系统版块每日发帖之星
日期:2016-05-10 19:23:04操作系统版块每日发帖之星
日期:2016-05-10 19:23:04操作系统版块每日发帖之星
日期:2016-05-10 19:22:58数据库技术版块每日发帖之星
日期:2016-05-10 19:23:04数据库技术版块每日发帖之星
日期:2016-05-10 19:23:04操作系统版块每日发帖之星
日期:2016-05-10 19:22:58操作系统版块每日发帖之星
日期:2016-05-10 19:22:58操作系统版块每日发帖之星
日期:2016-05-10 19:22:58
发表于 2017-09-02 19:44 来自手机 |显示全部楼层
不少人喜欢cpp那是因为懒,不想造轮子而已

论坛徽章:
0
发表于 2017-09-03 15:03 |显示全部楼层
C++ 比 C 性能好,唯一的地方是模板的优化,其他方面C++能做的C也一样能做

论坛徽章:
54
2017金鸡报晓
日期:2017-02-08 10:39:42操作系统版块每日发帖之星
日期:2016-03-08 06:20:00操作系统版块每日发帖之星
日期:2016-03-07 06:20:00操作系统版块每日发帖之星
日期:2016-02-22 06:20:00操作系统版块每日发帖之星
日期:2016-01-29 06:20:00操作系统版块每日发帖之星
日期:2016-01-27 06:20:00操作系统版块每日发帖之星
日期:2016-01-20 06:20:00操作系统版块每日发帖之星
日期:2016-01-06 06:20:0015-16赛季CBA联赛之江苏
日期:2015-12-21 20:00:24操作系统版块每日发帖之星
日期:2015-12-21 06:20:00IT运维版块每日发帖之星
日期:2015-11-17 06:20:002015亚冠之广州恒大
日期:2015-11-12 10:58:02
发表于 2017-09-03 16:42 |显示全部楼层
回复 3# wlmqgzm

吓到我了……

论坛徽章:
18
程序设计版块每日发帖之星
日期:2015-08-17 06:20:0015-16赛季CBA联赛之上海
日期:2017-07-21 18:12:5015-16赛季CBA联赛之江苏
日期:2017-06-26 11:05:56黑曼巴
日期:2016-12-26 16:00:32每日论坛发贴之星
日期:2016-07-18 06:20:00程序设计版块每日发帖之星
日期:2016-07-18 06:20:00程序设计版块每日发帖之星
日期:2016-07-16 06:20:00程序设计版块每日发帖之星
日期:2016-07-15 06:20:0015-16赛季CBA联赛之江苏
日期:2016-07-07 18:37:51程序设计版块每日发帖之星
日期:2016-06-03 06:20:00程序设计版块每日发帖之星
日期:2016-06-02 06:20:00程序设计版块每日发帖之星
日期:2016-05-30 06:20:00
发表于 2017-09-04 17:24 |显示全部楼层
3楼给出的理由都能用到C上吧,不过有没有现成的就是个问题了

论坛徽章:
129
操作系统版块每日发帖之星
日期:2016-05-11 17:06:57操作系统版块每日发帖之星
日期:2016-05-11 17:06:57数据库技术版块每日发帖之星
日期:2016-05-11 17:07:05操作系统版块每日发帖之星
日期:2016-05-11 17:06:57操作系统版块每日发帖之星
日期:2016-05-11 17:06:57综合交流区版块每日发帖之星
日期:2016-05-11 17:07:052022北京冬奥会纪念版徽章
日期:2015-08-07 17:10:57IT运维版块每日发帖之星
日期:2016-05-11 17:06:49操作系统版块每日发帖之星
日期:2016-05-11 17:06:57综合交流区版块每日发帖之星
日期:2016-05-11 17:07:05操作系统版块每日发帖之星
日期:2016-05-11 17:06:57程序设计版块每日发帖之星
日期:2016-05-11 17:06:57
发表于 2017-09-05 11:48 |显示全部楼层
性能这块,对计算机程序而言,算法影响是首要的因素,
考虑到数十年来算法思想整体比较稳定,所以————



在不犯大错误的情况,另外一个重要的因素就是存储,利用好缓存也是提升性能最直接的办法
您需要登录后才可以回帖 登录 | 注册

本版积分规则

SACC2017购票8.8折优惠进行时

2017中国系统架构师大会(SACC2017)将于10月19-21日在北京新云南皇冠假日酒店震撼来袭。今年,大会以“云智未来”为主题,云集国内外顶级专家,围绕云计算、人工智能、大数据、移动互联网、产业应用等热点领域展开技术探讨与交流。本届大会共设置2大主会场,18个技术专场;邀请来自互联网、金融、制造业、电商等多个领域,100余位技术专家及行业领袖来分享他们的经验;并将吸引4000+人次的系统运维、架构师及IT决策人士参会,为他们提供最具价值的交流平台。
----------------------------------------
优惠时间:2017年8月2日前

活动链接>>
  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号 北京市公安局海淀分局网监中心备案编号:11010802020122
广播电视节目制作经营许可证(京) 字第1234号 中国互联网协会会员  联系我们:
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP