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

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

专栏成员
1119
文章
2588699
阅读量
907
订阅数
每个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
消息队列基本原理和选型对比
作者:anncdchen,腾讯 PCG 后台开发工程师 消息队列使用场景 消息队列中间件是分布式系统中重要的组件,主要解决应用耦合,异步消息,削峰填谷等问题。实现高性能、高可用、可伸缩和最终一致性架构。 解耦:多个服务监听、处理同一条消息,避免多次 rpc 调用。 异步消息:消息发布者不用等待消息处理的的结果。 削峰填谷:较大流量、写入场景,为下游 I/O 服务抗流量。当然大流量下就需要使用其他方案了。 消息驱动框架:在事件总线中,服务通过监听事件消息驱动服务完成相应动作。 消息队列模式 点对点模
腾讯技术工程官方号
2022-08-26
9620
以小窥大:IO 卡顿探寻苹果文件系统
作者:rhythmzhang,腾讯 WXG 客户端开发工程师 从一个不寻常的 I/O 卡顿入手,发现苹果 APFS 的一个严重 bug。 近期有用户反馈频繁遇到了一个奇怪的严重卡顿问题,微信刷朋友圈和查看聊天都非常卡,主线程卡在最普通的 access, rename 等常见 I/O 系统调用,并且经常卡上百 ms,而这种场景的底层接口一般都没干什么大量的 I/O 操作。比如 access 接口也就是获取文件是否存在的轻量操作,正常耗时都只有几十 us 而已,远达不到此时的上百 ms 耗时。 一、分析问题 寻
腾讯技术工程官方号
2022-08-26
9440
深入理解完美哈希
作者:foxxiao,腾讯 WXG 后开开发工程师 本文对完美 Hash 的概念进行了梳理,通过 Hash 构建步骤来了解它是如何解决 Hash 冲突的,并比较了 Hash 表和完美 Hash 表。下面介绍常见的 Hash 与 Perfect Hash 函数及它们在不同场景的应用。 散列函数(英语:Hash function)又称散列算法、哈希函数,是一种从任何一种数据中创建小的数字“指纹”的方法。散列函数把消息或数据压缩成摘要,使得数据量变小,将数据的格式固定下来。该函数将数据打乱混合,重新创建一个叫做散
腾讯技术工程官方号
2022-07-20
2.7K0
Kubernetes 资源拓扑感知调度优化
作者:腾讯星辰算力团队 1. 背景 1.1. 问题源起 近年来,随着腾讯内部自研上云项目的不断发展,越来越多的业务开始使用云原生方式托管自己的工作负载,容器平台的规模因此不断增大。以 Kubernetes 为底座的云原生技术极大推动了云原生领域的发展,已然成为各大容器平台事实上的技术标准。在云原生场景下,为了最大化实现资源共享,单台宿主机往往会运行多个不同用户的计算任务。如果在宿主机内没有进行精细化的资源隔离,在业务负载高峰时间段,多个容器往往会对资源产生激烈的竞争,可能导致程序性能的急剧下降,主要体现为:
腾讯技术工程官方号
2022-06-24
1.7K0
Redis 知识总结
作者:leobhao,腾讯 CSIG 研发工程师。 1. Redis 概览 Redis 和 memcache 的区别,Redis 支持的数据类型应用场景 redis 支持的数据结构更丰富(string,hash,list,set,zset)。memcache 只支持 key-value 的存储; redis 原生支持集群,memcache 没有原生的集群模式。 2. Redis 单线程模型 redis 单线程处理请求流程 redis 采用 IO 多路复用机制来处理请求,采用 reactor IO 模型, 处
腾讯技术工程官方号
2022-06-14
5730
一致性 Hash 算法原理总结
作者:kylinkzhang,腾讯 CSIG 后台开发工程师 一致性 Hash 算法是解决分布式缓存等问题的一种算法,本文介绍了一致性 Hash 算法的原理,并给出了一种实现和实际运用的案例; 一致性 Hash 算法背景 考虑这么一种场景: 我们有三台缓存服务器编号node0、node1、node2,现在有 3000 万个key,希望可以将这些个 key 均匀的缓存到三台机器上,你会想到什么方案呢? 我们可能首先想到的方案是:取模算法hash(key)% N,即:对 key 进行 hash 运算后取模,N
腾讯技术工程官方号
2022-03-14
1.4K0
大规模 Node.js 网关架构设计与工程实践
作者:王伟嘉,腾讯云 CloudBase 前端负责人。 本文是王伟嘉在 GMTC 2021 全球大前端技术大会(深圳站)上的演讲内容:《十亿级 Node.js 网关的架构设计与工程实践》。 今天来开门见山地讲讲网关是一个怎么样的组件,网关在做什么事情。网关这个词其实到处都在用,它可以工作在硬件层面,也可以工作在网络层,还可以工作在应用层。 网关快速入门 网关在做什么? 我们今天讲的实际上是一个工作在 HTTP 七层协议的网关,它主要做的有几件事情: 第一,公网入口。它作为我们公有云服务的一个入口,可以把公有
腾讯技术工程官方号
2022-02-15
5800
Linux I/O 那些事儿
介绍 Linux IO 的一些基本原理。 作者:arraywang,腾讯 CSIG 我们先看一张图: 这张图大体上描述了 Linux 系统上,应用程序对磁盘上的文件进行读写时,从上到下经历了哪些事情。 这篇文章就以这张图为基础,介绍 Linux 在 I/O 上做了哪些事情。 文件系统 什么是文件系统 文件系统,本身是对存储设备上的文件,进行组织管理的机制。组织方式不同,就会形成不同的文件系统。比如常见的 Ext4、XFS、ZFS 以及网络文件系统 NFS 等等。 但是不同类型的文件系统标准和接
腾讯技术工程官方号
2021-11-18
1.6K0
微信终端自研 C++协程框架的设计与实现
作者:peterfan,腾讯 WXG 客户端开发工程师 背景 基于跨平台考虑,微信终端很多基础组件使用 C++ 编写,随着业务越来越复杂,传统异步编程模型已经无法满足业务需要。Modern C++ 虽然一直在改进,但一直没有统一编程模型,为了提升开发效率,改善代码质量,我们自研了一套 C++ 协程框架 owl,用于为所有基础组件提供统一的编程模型。 owl 协程框架目前主要应用于 C++ 跨平台微信客户端内核(Alita),Alita 的业务逻辑部分全部用协程实现,相比传统异步编程模型,至少减少了 5
腾讯技术工程官方号
2021-11-03
1.6K0
使用 LLVM 实现一个简单编译器
作者:tomoyazhang,腾讯 PCG 后台开发工程师 1. 目标 这个系列来自 LLVM 的Kaleidoscope 教程,增加了我对代码的注释以及一些理解,修改了部分代码。现在开始我们要使用 LLVM 实现一个编译器,完成对如下代码的编译运行。 # 斐波那契数列函数定义 def fib(x)     if x < 3 then         1     else         fib(x - 1) + fib(x - 2) fib(40) # 函数声明 extern sin(arg)
腾讯技术工程官方号
2021-09-18
3K0
企业微信 web 项目工业级蜕变
作者:chriscai,腾讯 WXG 前端开发工程师 企业微信 web 项目从以前的小而简单的 web 项目,历经五载,蜕变成了平台级的项目。这几年伴随着前端工业化和前端技术变革,本文将介绍我们如何在高速迭代当中,对大型 web 项目进行高效代码管理,架构升级,编译优化等,最后完成工程化的工业级蜕变。 一、背景介绍 企业微信 企业微信是为用户提供企业 IT 管理的产品。目前有两大业务体系:“连接微信”和“效率与办公”。企业微信具体业务涉及非常广泛,主要有几大功能:客户联系、家校沟通、日程、OA、会议等
腾讯技术工程官方号
2021-08-17
7410
带你快速了解 Docker 和 Kubernetes
作者:honghaohu,腾讯 PCG 后台开发工程师 从单机容器化技术 Docker 到分布式容器化架构方案 Kubernetes,当今容器化技术发展盛行。本文面向小白读者,旨在快速带领读者了解 Docker、Kubernetes 的架构、原理、组件及相关使用场景。 Docker 1.什么是 Docker Docker 是一个开源的应用容器引擎,是一种资源虚拟化技术,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上。虚拟化技术演历路径可分为三个时代:
腾讯技术工程官方号
2021-07-19
9710
gRPC 基础概念详解
作者:jasonzxpan,腾讯 IEG 运营开发工程师 gRPC (gRPC Remote Procedure Calls) 是 Google 发起的一个开源远程过程调用系统,该系统基于 HTTP/2 协议传输,本文介绍 gRPC 的基础概念,首先通过关系图直观展示这些基础概念之间关联,介绍异步 gRPC 的 Server 和 Client 的逻辑;然后介绍 RPC 的类型,阅读和抓包分析 gRPC 的通信过程协议,gRPC 上下文;最后分析 grpc.pb.h 文件的内容,包括 Stub 的能力、
腾讯技术工程官方号
2021-07-12
4K0
这篇Redis文章,图灵看了都说好
作者:lunnzhang,腾讯 CDG 后台开发工程师。 2007 年,他和朋友一起创建了一个网站。为了解决这个网站的负载问题,他自己定制了一个数据库。2009 年开发的,这个是 Redis。这位意大利程序员是萨尔瓦托勒·桑菲利波(Salvatore Sanfilippo),他被称为Redis之父,更广为人知的名字是Antirez。 一、Redis简介 REmote DIctionary Server(Redis) 是一个开源的使用 ANSI C 语言编写、遵守 BSD 协议、支持网络、可基于内存、分
腾讯技术工程官方号
2021-06-30
7180
一文掌握 Linux 内存管理
作者:dengxuanshi,腾讯 IEG 后台开发工程师 以下源代码来自 linux-5.10.3 内核代码,主要以 x86-32 为例。 Linux 内存管理是一个很复杂的“工程”,它不仅仅是对物理内存的管理,也涉及到虚拟内存管理、内存交换和内存回收等 物理内存的探测 Linux 内核通过 detect_memory()函数实现对物理内存的探测 void detect_memory(void) {  detect_memory_e820();  detect_memory_e801();  d
腾讯技术工程官方号
2021-05-13
2.1K0
海量小文件场景下训练加速优化之路
作者:星辰算力平台 1. 背景 随着大数据、人工智能技术的蓬勃发展,人类对于算力资源的需求也迎来大幅度的增长。在腾讯内部,星辰算力平台以降本增效为目标,整合了公司的GPU训练卡资源,为算法工程师们提供统一的底层GPU算力服务。借助于虚拟化、算力挖掘等技术,平台服务公司内各BG的AI训练场景,GPU利用率业界领先。同时,通过云原生任务化的方式,对接了内部各大业务,促进了AI技术研究效率的提升和创新研究。 当下,由于AI训练时的高性能计算设备(如NVIDIA GPU)成本高昂,如果任务在训练过程中不能保证
腾讯技术工程官方号
2021-02-23
2.2K0
操作系统与存储:解析Linux内核全新异步IO引擎io_uring设计与实现
作者:draculaqian,腾讯后台开发工程师 引言 存储场景中,我们对性能的要求非常高。在存储引擎底层的IO技术选型时,可能会有如下讨论关于IO的讨论。 http://davmac.org/davpage/linux/async-io.html So from the above documentation, it seems that Linux doesn't have a true async file I/O that is not blocking (AIO, Epoll or POS
腾讯技术工程官方号
2021-02-22
2.4K0
Kubernetes 入门&进阶实战
作者:oonamao毛江云,腾讯 CSIG 应用开发工程师 写在前面 笔者今年 9 月从端侧开发转到后台开发,第一个系统开发任务就强依赖了 K8S,加之项目任务重、排期紧,必须马上对 K8S 有概念上的了解。然而,很多所谓“K8S 入门\概念”的文章看的一头雾水,对于大部分新手来说并不友好。经历了几天痛苦地学习之后,回顾来看,K8S 根本不复杂。于是,决心有了这一系列的文章:一方面希望对新手同学有帮助;另一方面,以文会友,希望能够有机会交流讨论技术。 本文组织方式: 1. K8S 是什么,即作用和目的
腾讯技术工程官方号
2020-12-29
1.8K0
点击加载更多
社区活动
【纪录片】中国数据库前世今生
穿越半个世纪,探寻中国数据库50年的发展历程
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档