- 论坛徽章:
- 9
|
本帖最后由 wlmqgzm 于 2017-05-17 21:43 编辑
我觉得C/C++的性能方面的优势是比较突出的,目前最快的服务器软件都是C/C++开发的
Go语言虽然使用上可以很简单,微线程架构都是内置的,大大降低了一些小公司的开发门槛, 但是 性能方面还不能够与专家编写的C/C++相比,
深圳有一家开发数据库TIKV/TIDB的厂家,测试发现Go语言的性能很低,对性能要求高的部分使用rust开发, 其他性能不是很重要的部分就采用go开发,开发效率快
很多公司和很多C/C++的开源库也都提供了微线程架构, 例如: 本论坛的Windoze版主就有一个性能很好的C/C++的微线程开源架构库 windoze/fibio
C/C++语言可挖掘的潜力还很大,最近几个月我们公司发现了大量新的优化C/C++的途径,
我公司开发的基于C++的memcache已经比原生版本查询性能快65%,网络层是基于Boost::asio库的,内存管理是基于jemalloc库的,hash_map和无锁队列是公司自研的, 微线程调度是基于boost::asio::io_service的封装优化的,各类锁是基于std::atomic的, 一些底层库是自研的,包括二进制/十进制转换, 智能指针等, 目的是提供比std库更好的性能.....
基本上每增加一个CPU核心, 大概可以新增10万QPS的查询能力,性能方面C/C++远远超越Go语言, 另外由于C/C++的各类库历史积累多,对于大公司来讲,这些库也是宝贵的财富。
我判断, 在高性能服务器软件领域, Go语言还不能与C/C++竞争
|
|