首页
学习
活动
专区
工具
TVP
发布

腾讯技术工程官方号的专栏

专栏成员
1119
文章
2588051
阅读量
907
订阅数
C++内存问题排查攻略
GCC提供了-fstack-usage选项,能输出每个函数栈的最大使用量。开启后,为每个编译目标创建.su文件,每行包括函数名、字节数、修饰符(static/dynamic/bounded)中的一个或多个。修饰符的含义如下:
腾讯技术工程官方号
2024-08-14
1570
结合实例深入理解C++对象的内存布局
因为二进制使用了不同版本的 proto 对象,对象的内存布局不一致导致读、写成员的内存地址错乱,进而导致进程 crash 掉。这之中会出现下面的问题:
腾讯技术工程官方号
2024-08-08
4211
从裸机启动一个C++程序实战操作
对于一个C++程序员来说,可能更多是是每天都在跟各种上层语义、设计模式、软件方法等等在打交道。但对于「一个C++程序是如何运行在机器上的」这件事可能会比较陌生。有时,遇到一些问题,在宏观角度看起来可能比较难以解释,但其实从底层出发,就能发现这个问题其实根本不算问题。类似的问题有:
腾讯技术工程官方号
2024-03-30
7090
C++常见避坑指南
当调用一个空指针所指向的类的成员函数时,大多数人的反应都是程序会crash。空指针并不指向任何有效的内存地址,所以在调用成员函数时会尝试访问一个不存在的内存地址,从而导致程序崩溃。
腾讯技术工程官方号
2024-02-28
4590
C++知识体系总结:语言核心与代码工程
为什么是golang,从下面这篇文章可以一窥端倪,本文从“performance, simplicity, safety, features, scale, and concurrency“等几个方面对Golang和Rust做了对比,可以看看:
腾讯技术工程官方号
2023-09-01
7020
七十年编程语言发展漫谈
作者:kevinyangli,腾讯 CSIG 客户端开发工程师 客户端开发在多种生态中生存就要熟练使用各种平台的环境和语言。回顾自己的职业生涯,涉及多个平台生态以及对应的原生编程语言。最近又用起了 Dart,经常在写代码的时候要想想自己是在什么平台,用什么 IDE,在写什么语言。这种情况持续了一段时间之后对编程语言有了一些想法和探索的欲望,本文不拘泥于某个语言或者特性,而是从语言的发展和历史的角度聊聊这个话题。 严谨起见,本文提到的“编程语言”指的是“第三代高级编程语言”。 让我们从时间维度入手来聊聊编程语
腾讯技术工程官方号
2023-02-16
8750
每个C++工程师都要了解的十个性能陷阱
作者:jinshang,腾讯 WXG 后台开发工程师 如果你让每个 C++工程师列出他们喜欢 C++的原因,那“掌控力”绝对是排在前几的特性。与 go、java 等垃圾回收语言的大道至简、python 等解释语言的小快灵不同,C++最大的魅力就是给予工程师对代码完全的掌控,每个 C++程序员仿佛都是人形编译器,不止要看懂代码表面的逻辑,甚至要知道每行代码对应的汇编指令。优化代码也成了 C++工程师日常必备活动,正所谓“一杯茶,一包烟,一段代码,优化一天”。在经历过无数个性能优化的日日夜夜后,笔者也总结了几个
腾讯技术工程官方号
2022-11-03
1.6K0
从无栈协程到 C++异步框架
作者:fangshen,腾讯 IEG 游戏客户端开发工程师 导语 本文我们将尝试对整个 C++的协程做深入浅出的剥析, 方便大家的理解. 再结合上层的封装, 最终给出一个 C++异步框架实际业务使用的一种形态, 方便大家更好的在实际项目中应用无栈协程。 1. 浅谈协程 在开始展开协程前, 我们先来看一下一些非 C++语言中的协程实现. 1.1 其他语言中的协程实现 很多语言里面, 协程是作为 "一类公民" 直接加入到语言特性中的, 比如: 1.1.1 Dart1.9 示例代码 Future<int> get
腾讯技术工程官方号
2022-10-13
2.4K0
终极 C++避坑指南
作者:boreholehu,腾讯 WXG 后台开发工程师 前言 C++是一门古老的语言,但仍然在不间断更新中,不断引用新特性。但与此同时 C++又甩不掉巨大的历史包袱,并且 C++的设计初衷和理念造成了 C++异常复杂,还出现了很多不合理的“缺陷”。 本文主要有 3 个目的: 总结一些 C++晦涩难懂的语法现象,解释其背后原因,作为防踩坑之用; 和一些其他的编程语言进行比较,列举它们的优劣; 发表一些我自己作为 C++程序员的看法和感受。 来自 C 语言的历史包袱 C++有一个很大的历史包袱,就是 C 语言
腾讯技术工程官方号
2022-09-08
2.2K0
大牛书单 | C++的好书推荐
Bjarne Stroustrup博士在贝尔实验室工作期间,个人在C和Simula两种计算机语言基础上,基于直接操作硬件,同时支持高效,高级抽象的设计理念,于1979年完成了C++语言最初版本,1985年首次商业发行,随着功能扩展与完善,C++后来成为最广泛使用的计算机程序设计语言之一。 C++作为一种通用及自由的编程语言,同时支持面向过程,面向对象,泛型编程,函数式编程四大编程流派,加之硬件级的映射及高执行效率真使其应用极其广泛。C++从最初的封装,继承,多态的简单三大特征,到后来异常,移动语义,lamd
腾讯技术工程官方号
2022-07-19
6990
​浅谈协程
作者:kylinkzhang,腾讯 CSIG 后台开发工程师 什么是协程 我们可以简单的认为:协程就是用户态的线程,但是上下文切换的时机是靠调用方(写代码的开发人员)自身去控制的。 同时,协程和用户态线程非常接近,用户态线程之间的切换不需要陷入内核,但部分操作系统中用户态线程的切换需要内核态线程的辅助。 下面是一个简单的例子: void A() {    cout << 1 << " ";    cout << 2 << " ";    cout << 3 << " "; } void B() {    
腾讯技术工程官方号
2022-07-01
1.8K0
C++异步从理论到实践总览篇
作者:fangshen,腾讯 IEG 客户端开发工程师 C++20带来了coroutine特性, 同时新的execution也在提案过程中, 这两者都给我们在C++中解决异步问题带来了新的思路. 但对比其他语言的实现, C++的协程和后续的execution都存在一定的理解和封装成本, 本系列的分享我们将围绕基本的原理, 相应的封装, 以及剥析优秀的第三方实现, 最终结合笔者framework落地的情况来展开. 1. 纠结的开篇 之前设计我们游戏用的c++框架的时候, 刚好c++20的coroutine已经
腾讯技术工程官方号
2022-06-08
1.3K0
C++17 在业务代码中最好用的十个特性
作者:jinshang,腾讯 WXG 后台开发工程师 自从步入现代 C++时代开始,C++语言标准形成了三年一个版本的惯例:C++11 标志着现代 C++的开端,C++14 在 11 的基础上查缺补漏,并未加入许多新特性,而 C++17 作为 C++11 后的第一个大版本,标志着现代 C++逐渐走向成熟。WXG 编译器升级到 gcc7.5 已有一段时间,笔者所在项目组也已经将全部代码升级到 C++17。在使用了 C++17 一年多之后,笔者总结了 C++17 在业务代码中最好用的十个特性。 注 1:本文只
腾讯技术工程官方号
2022-05-25
2.6K0
C++ 学习笔记
作者:readywang(王玉龙) template 是 c++ 相当重要的组成部分,堪称 c++语言的一大利器。在大大小小的 c++ 程序中,模板无处不在。c++ templates 作为模板学习的经典书籍,历来被无数 c++学习者所推崇。第二版书籍覆盖了 c++ 11 14 和 17 标准,值得程序猿们精读学习,特此整理学习笔记,将每一部分自认为较为重要的部分逐条陈列,并对少数错误代码进行修改 一、函数模板 1.1 函数模板初探 1.模板实例化时,模板实参必须支持模板中类型对应的所有运算符操作。 te
腾讯技术工程官方号
2022-03-03
6.7K0
C++ 智能指针最佳实践&源码分析
作者:lucasfan,腾讯 IEG Global Pub.Tech. 客户端工程师 智能指针在 C++11 标准中被引入真正标准库(C++98 中引入的 auto_ptr 存在较多问题),但目前很多 C++开发者仍习惯用原生指针,视智能指针为洪水猛兽。但很多实际场景下,智能指针却是解决问题的神器,尤其是一些涉及多线程的场景下。本文将介绍智能指针可以解决的问题,用法及最佳实践。并且根据源码分析智能指针的实现原理。 一、为什么需要使用智能指针 1.1 内存泄漏 C++在堆上申请内存后,需要手动对内存进行
腾讯技术工程官方号
2021-12-21
1.8K0
开发常用的缩写 你能看懂几个?
不知何时起 缩写文化开始流行起来, 现在网上冲浪都需要玩“解密”游戏 而且,缩写词汇迭代的也很快, 最近又出现了一波“加密语句” 这些加密逻辑思路清奇,真是让人脑壳疼。 缩写除了网络弄潮儿们喜欢运用 在程序员的工作上也会用到缩写术语 缩写术语常常让职场新人一头雾水 那么二哥今天就与大家一起分享一些 程序员们(尤其是开发)会用到的缩写。 看到这些缩写, 他二哥想起了被四六级、托福雅思、考研英语支配的恐惧... 各位程序员们在工作中还有哪些常用缩写?
腾讯技术工程官方号
2021-11-08
7030
微信终端自研 C++协程框架的设计与实现
作者:peterfan,腾讯 WXG 客户端开发工程师 背景 基于跨平台考虑,微信终端很多基础组件使用 C++ 编写,随着业务越来越复杂,传统异步编程模型已经无法满足业务需要。Modern C++ 虽然一直在改进,但一直没有统一编程模型,为了提升开发效率,改善代码质量,我们自研了一套 C++ 协程框架 owl,用于为所有基础组件提供统一的编程模型。 owl 协程框架目前主要应用于 C++ 跨平台微信客户端内核(Alita),Alita 的业务逻辑部分全部用协程实现,相比传统异步编程模型,至少减少了 5
腾讯技术工程官方号
2021-11-03
1.6K0
腾讯程序员不寻常的三年
给腾讯所有的程序员三年,可以创造些什么?2018 年“930”是开源协同的起点,这场指尖上的技术热浪,滚滚前行已经三年。从逐步开源的代码,到社区生态的热烈,再到开源灵魂的熔铸,我们努力开源的,不止是技术;我们渴望创造的,不仅是这一代的精彩。 程序员杨晓峰开始体会到一种前所未有的“快感”。 他所在的团队向 OpenJDK 国际开源社区主分支贡献的代码名列国内第一,受到了该开源社区的点名致谢,腾讯也成为迄今为止该社区唯一一家因显著贡献被连续点名致谢的中国公司,两位团队成员获得了社区 reviewer 权限
腾讯技术工程官方号
2021-10-25
7460
效能优化实践:C/C++单元测试万能插桩工具
作者:mannywang,腾讯安全平台后台开发 研发效能是一个涉及面很广的话题,它涵盖了软件交付的整个生命周期,涉及产品、架构、开发、测试、运维,每个环节都可能影响顺畅、高质量地持续有效交付。在腾讯安全平台部实际研发与测试工作中我们发现,代码插桩隔离是单元测试工作中的一个强需求,然而业界现有 C/C++插桩工具由于使用上的局限性,运行效率和体验仍有很大改善空间。本文介绍了团队基于研效优化实践而自研的动态插桩工具,旨在实现单元测试的轻量化运行,提高代码覆盖率,从而助力研发团队的效能提升。 问题&思路 目
腾讯技术工程官方号
2021-06-17
1.5K0
腾讯广告 3000+万行大代码库主干开发实战
作者:phongchen,腾讯 CDG 后台开发工程师 互联网行业竞争激烈,产品迭代快,其中研发效能越来越成为跑赢竞争对手的重要影响因素。需求两天就能上线和两个星期才能上线,结果可能大相径庭。本文总结了腾讯广告系统主要采用的目前业界标杆公司引领的单代码仓库+主干开发+城际快线发布模式,供大家参考,以此作为对我个人两年多以来专职从事工程效能工作的一个总结,也欢迎大家多提宝贵意见。 基本概念 单一代码仓库 相信很多人都看过这篇文章: 其实不止 Google,硅谷很多大大小小的公司,比如 Faceboo
腾讯技术工程官方号
2021-03-22
1.7K0
点击加载更多
社区活动
【纪录片】中国数据库前世今生
穿越半个世纪,探寻中国数据库50年的发展历程
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档