腾讯技术工程

其他

十年前的微信消息收发架构居然是这样子的

发送一条微信消息来看消息发送的整体架构是怎样的,如图1所示:微信消息发送在整体架构上可以分为2个部分:1)手机A发送消息到服务器(图1中1,2,3部分)1:手机A发送发消息请求到接入层
4月16日 下午 6:00
其他

每个程序员都应该了解的硬件知识

作者:shizhaoyang在追求高效代码的路上,我们不可避免地会遇到代码的性能瓶颈。为了了解、解释一段代码为什么低效,并尝试改进低效的代码,我们总是要了解硬件的工作原理。于是,我们可能会尝试搜索有关某个架构的介绍、一些优化指南或者阅读一些计算机科学的教科书(如:计算机组成原理)。但以上的内容可能都太过繁琐、细节太多,在阅读的过程中,我们可能会迷失在纷繁的细节中,没法很好地将知识运用到实践中。本文旨在通过多个可运行的
4月2日 下午 6:01
其他

从裸机启动一个C++程序实战操作

作者:boreholehu前言对于一个C++程序员来说,可能更多是是每天都在跟各种上层语义、设计模式、软件方法等等在打交道。但对于「一个C++程序是如何运行在机器上的」这件事可能会比较陌生。有时,遇到一些问题,在宏观角度看起来可能比较难以解释,但其实从底层出发,就能发现这个问题其实根本不算问题。类似的问题有:空指针到底能不能访问?(int
3月28日 下午 6:00
其他

全链路追踪在腾讯云的落地思考与实践

概述随着微服务以及容器技术的发展,系统软件的构建方式也随之发生了改变,微服务调用关系错综复杂,传统的监控方案很难满足当下应用场景的需求,指标、链路追踪以及日志目前已经成为了云原生应用的“必备品”,当把它们集成在一起时,需要拥有一个更加成熟的现代化可观测体系来支撑,以便了解应用系统内发生的事情。通过可观测性体系的建立,我们可以更好的去洞察监控数据,从而能够更快速的做问题定界以及根因定位,降低
1月2日 下午 6:00
其他

腾讯云原生场景下内存多级卸载落地实践

counter(raw、limit、usage)每个cgroup可以独立设置zram压缩登极,对于per-cgroup也做到了每个cgroup都能独立计算出压缩前和压缩后的量,以及现在cgroup
2023年11月28日
其他

C++知识体系总结:语言核心与代码工程

右值引用与移动构造函数本节参考:程序喵大人:左值引用、右值引用、移动语义、完美转发,你知道的不知道的都在这里作用:右值引用与std::move结合,减少对象拷贝附:move函数实现1.7.
2023年8月29日
其他

提升ChatGPT性能的实用指南:Prompt Engineering的艺术

将问题建模为树状搜索过程,包括四个步骤:问题分解、想法生成,状态评价以及搜索算法的选择。头脑风暴提示主要考虑的是代码生成方向,不过思想还是可以用在各种领域的提问的。核心思想分为三步头脑风暴:通过多个
2023年8月3日
其他

微信万亿数据仓库架构设计与实现

作者:remy没有足够的特征数据,安全策略将是"无根之木,无源之水"。微信安全数据仓库应运而生,成为整个安全业务的特征数据存储中心,每天服务了万亿级的特征数据读写请求,为整个微信安全策略提供了可靠的数据支撑,是微信安全基石之所在。然而,微信安全数据仓库不仅仅是一个存储中心,更是一个特征管理和数据质量管理的中心。在演进过程中,数据仓库一直致力于提升特征管理能力和数据质量保障,实现了特征的管理、共享、分析和数据质量检测等功能。本文将介绍安全数据仓库的起源、演进、当前的架构设计和数据质量保证系统的实现。业务背景安全策略开发流程安全业务的核心逻辑在安全策略中实现。整个的策略开发流程包括特征数据的收集,安全策略的编写实现,和策略的反馈评估。其中特征数据的收集是必不可少的环节,数据的质量将直接影响安全策略的效果。特征数据收集主要包括:数据接入、特征的计算、特征的存储。在数据仓库还未建立时,业务同学通过消费离线存储mmdata和tdw接入数据,通过Flink流式计算或者自定义模块对数据进行加工,计算出需要的特征,最终存储到自行维护的KV,然后在安全策略平台上编写安全策略,读取KV中的数据,
2023年7月4日
其他

用ChatGPT搭建代码知识库,提升开发效率

算力支持,且调试过程耗时较长。第二种方法是利用嵌入技术(embedding)。通过嵌入模型,将特定知识转化为向量,然后将这些向量存入相应的向量数据库中。在查询阶段,通过相似度查询,匹配出关联的
2023年6月29日
其他

减少40%“浪费”,软硬件一体项目敏捷管理新思路

鱼快创领是一家面向商用车领域的车联网公司,提供以车为中心的数字化服务,为交通运输物流行业带来更加绿色、安全、高效的智能网联解决方案,用科技推动行业进步。本文整理自鱼快创领项目管理专家唐骥在TAPD思享汇上的分享,为大家介绍鱼快创领如何专注于产品价值,通过TAPD探索出多场景软硬件一体化敏捷项目管理新思路。
2023年4月28日
其他

写给开发同学的 AI 强化学习入门指南

基本上一窍不通,但是好在身处在这个信息爆炸的时代,去网上随便一搜发现大把的学习资料。像这个链接里面:https://github.com/ty4z2008/Qix/blob/master/dl.md
2023年4月28日
其他

教会你使用AI绘画利器Stable Diffusion

上可以直接下载模型。用户只需要把CHECKPOINT格式的模型下载下来并放到stable-diffusion-webui/models/Stable-diffusion这个路径下就可以直接使用。在
2023年4月25日
其他

开源图像模型Stable Diffusion入门手册

的工作方式是从以随机高斯噪声起步,向符合提示的图像一步步降噪接近。随着步数增多,可以得到对目标更小、更精确的图像。但增加步数也会增加生成图像所需的时间。增加步数的边际收益递减,取决于采样器。一般开到
2023年4月11日
自由知乎 自由微博
其他

微信、QQ 等600+业务都在用的PAG动效方案揭秘

内部设计了视频序列帧的格式,充分利用了视频的极限帧间压缩能力。另外视频的格式还可以在运行时利用硬件加速解码,从而获得更高的渲染性能。但它也有一个明显缺点,就是不支持透明通道。我们会在导出时,会将一张
2023年4月4日
其他

如何与ChatGPT4结对编程提升研发效率

工具,并结合结对编程方法,从而在研发过程中实现显著的效率提升。重要提示:大家在作相应尝试的时候,一定要注意信息安全。场景一:正则表达式编写我们团队负责
2023年3月30日
其他

GitHub重磅编程助手Copilot X上手体验

快速准确的生成你想要的代码,比如你要在提示词中定义好需要完成的功能、对任务进行拆分、确定输入输出、表达准确避免歧义等等,所以提示词的编写本身就会变得十分的重要,未来程序员的第一课可能并不是学习
2023年3月27日
其他

腾讯发布AIGC发展趋势报告|64页PDF下载

模型加速成为新的技术平台,模型即服务(Model-as-a-Service,MaaS)开始成为现实,预计将对商业领域产生巨大影响。第三层是应用层,依托底层模型和中间层的垂直模型,各厂商进一步开放面向
2023年3月23日
其他

谈谈架构设计

层。缺点:系统之间的交互要使用远程通信,接口开发增大工作量,但是利大于弊。3、微服务紧接着业务模式越来越复杂,订单、商品、库存、价格等各个模块都很深入,比如价格区分会员等级,访问渠道(app
2023年3月21日
其他

GPT-4 重磅发布,有哪些升级和变化?

是一个大型多模态模型(接受图像和文本输入,输出为文本),目前虽然在许多现实世界场景中的能力不如人类,但在各种专业和学术基准上表现出人类水平。例如它通过模拟律师考试,分数在应试者的前
2023年3月16日
其他

程序员“起名”头痛根治指南

名字无法表现含义时读者才会阅读文档。名字应该是有信息量的、无歧义的。以下一些策略可以增加名字的准确度:可读最基本的语法原理,是一个类(Class/Record/Struct/...
2023年3月10日
其他

2023年最新AIGC绘画水平发展

的论文,在这之前让程序模仿任意一张图片画画是没法想象的。(来源:https://zhuanlan.zhihu.com/p/26746283)从纹理到图片风格其实只差两步。第一步也是比较神奇的,是
2023年3月9日
其他

经典论文解读——布隆过滤器

后台开发工程师布隆过滤器是一种具有空间优势的概率数据结构,用于回答一个元素是否存在于一个集合中这样的问题,但是可能会出现误判——即一个元素不在集合但被认为在集合中。相信大家对布隆过滤器(Bloom
2023年3月7日
其他

大牛书单 | 缓存系列好书推荐

在计算中,缓存是一种存储数据的硬件或软件组件,以便可以更快地满足未来对该数据的请求;存储在缓存中的数据可能是早期计算的结果或存储在其他地方的数据副本。当可以在缓存中找到请求的数据时发生缓存命中,而当找不到时发生缓存未命中。缓存命中是通过从缓存中读取数据来提供的,这比重新计算结果或从较慢的数据存储中读取要快;因此,缓存可以处理的请求越多,系统执行的速度就越快。为了具有成本效益并能够有效地使用数据,缓存必须相对较小。尽管如此,缓存已经在许多计算领域证明了自己,因为典型的计算机应用程序访问具有高度局部引用的数据。这种访问模式表现出时间局部性,其中请求的数据最近已经请求过,而空间局部性,其中请求的数据物理上存储在已经请求的数据附近。缓存可以说是无处不在,比如:PC电脑中的内存、CPU中有二级缓存、http协议中的缓存控制、CDN加速技术,无不都是使用了缓存的思想来解决性能问题。缓存是用于解决高并发场景下系统的性能及稳定性问题的银弹。本期《大牛书单》,我们请来了几位鹅厂同事,聚焦不同类型的缓存,为大家推荐一些相关的书籍。
2023年3月2日
其他

QQ音乐高可用架构体系

dumps的方式在容器环境中实施困难,panic信息写入日志则容易被其他日志冲掉且感知太弱。QQ音乐使用的方式是在RPC框架中以拦截器的方式注入,发生panic后上报到sentry平台。6.
2023年1月31日
其他

ClickHouse 查询优化详细介绍

}}其中InterpreterSelectQuery::executeFetchColumns()函数是读取所需列的阶段。从代码中可以看到它也做了很多的优化:count()优化只有
2023年1月6日
其他

腾讯云OCR性能是如何提升2倍的

响应到客户链路的传输耗时在测试过程中发现波动很大。文字识别业务场景下请求传输的都是图片数据,受客户网络带宽和质量的影响大。而且客户请求的文字识别服务在广州,请求需要跨地域,进一步增加了传输耗时。●
2023年1月4日
其他

刷屏朋友圈的QQ小世界二次元生成器原理解密

是一个逐步地将正态分布的噪声叠加到图片上的过程,最终得到一张看起来完全是噪声的图片。可以不严谨地想象成往一块牛排上不断撒椒盐,直到它看起来完全被椒盐覆盖,看不清原来的纹路。而从左到右的
2022年12月22日
其他

十多年前祖传代码重构——从25万到5万行

数组,发现不了问题,因为数组的变幻直接不符合基本法。解决此类问题,需联系上下文分析,最好是将代码单独提取出来,在单元测试/本地客户端测试复现,缩小代码范围,可以更快定位问题。而当代码量较少,编译器的
2022年12月1日
其他

深入解读Raft算法与etcd工程实现

单成员变更-解决集群成员变更问题单成员变更的意思就是集群每次只变更一个节点。如下图所示,在单成员变更的方式中,变更前后的两个多数派一定存在交集,也就是变更过程中不可能产生两个
2022年11月24日
其他

当谈论协程时,我们在谈论什么

CPU,性能较高,但因为处理都是基于回调,逻辑代码过于分散,导致代码开发效率不高,代码逻辑不易懂也容易出错。那是否有一种方式,可以综合二者的优点,同时又不会引入太高的复杂度,就可以解决
2022年11月18日
其他

万字图文讲透数据库缓存一致性问题

如果设置得太长,那么在触发双删之前,新请求看到的都是脏数据。更新数据库后删除缓存那如果我们把更新数据库放在删除缓存之前呢,问题是否解决?我们继续从读写并发的场景看下去,有没有类似的问题。时间线程
2022年11月15日
其他

20场分享亮点抢先看!2022服务创新大会攻略出炉

如今,数字化的力量正深入生活的方方面面,为社会经济民生的发展带来肉眼可察的变化,在科技的助力下,实体经济不断焕发新机。在这数字浪潮下,互联网技术与服务设计如何惠及更多弱势小众领域?2022年AND服务创新大会聚焦技术公益领域,邀请了来自技术志愿者、公益机构、创投领域专家、科学界和公益领域媒体人等同台分享交流、探讨合作,与你一同探索服务创新如何创造更多的社会价值。《以人为本,关注技术公益背后的志愿者们》技术专才,是技术公益最核心的组成要素。腾讯技术公益为他们搭建连接公益机构的公益志愿者平台,为他们提供服务于公益机构的数字工具箱,以及即将推出的腾讯技术公益创投计划第二季让他们更好施展智慧与专业。只有把技术专才照顾好,技术+公益才会越来越好。《数字化赋能老年人精神心理健康管理》老年精神心理健康行动致力于让规范的老年精神心理健康服务走进社区,让更多的老年人就近获得有品质的服务。行动工作过程中形成了老年人精神心理健康全流程管理项目,并通过数字化能力孵化为信息整合平台,帮助提升老年精神心理健康行动的管理效率,并有效辅助开展效果评估。《科技让荒漠化防治更精准》荒漠化防治议题是自SEE基金会成立以来就所关注的。该议题下所做的工作应对于联合国发布的17个可持续发展目标中的13--气候行动和目标15--陆地生物。在近14年的项目实施过程中,项目团队先后将地理空间分析、遥感数据解译、大数据库管理等国内外主流先进的技术应运至项目管理、执行、监测评估的全过程中,大幅度的提升了项目的科学性和内伸性,为更加全面科学的开展荒漠化防治提供的有利保障。《科技为桥,弭平数字鸿沟》面对中国信息化快速发展与老龄化逐渐凸显的问题,夕阳再晨团队通过完善的孵化、教学、课程和管理体系,为高校青年志愿者赋能,开创了一套超大规模社区科技助老工作方法,用科技助老的方式,服务最需要的老年人,将志愿服务规模化。《本土NGO在海洋生物多样性主流化与互联网公益中的探索》在海洋生物多样性主流化进程中,不同保护主体普遍面临数据壁垒、参与方式单一、技术能力有限等挑战,尤其是对于国内公益机构以及NGO。以爱海豚公益计划(iDOLPHIN)为例,讲述社会机构如何更好的参与到生物多样性治理,将成为未来公共治理的巨大挑战。《云游长城背后的故事》“云游长城”小程序基于游戏技术,毫米级地复刻了位于河北的潘家口-喜峰口段长城,让大家在手机上就能身临其境地领略长城的美景,同时还能通过丰富的互动形式,学习科学修缮知识。让我们一起来了解数字技术应用在传统文化保护与传播领域探索背后的故事。《云开发助力技术公益》从技术公益的角度来讲,云开发可以降低开发门槛、提高开发效率,和微信生态的高适配性,又能为开发小程序提供极大便利。无论是青少年、残障人士还是非专业人士,都能用好云开发,把想法付诸现实,让更多人能参与到公益项目中。《所有的公益都需要技术公益》更主动更好地去拥抱信息技术甚至技术前沿,将会是很多公益项目进一步提升的机会,但是这个拥抱并不容易实现。本次将从媒体人角度谈公益组织该如何一步步的成为一个被“技术公益”赋能的面向未来的公益组织。《包容共益:企业如何通过利他的商业模式来改变世界?》创新,在工业时代往往表现为以效率为前提的范式突破。然而,随着数字资产成为全新的生产要素纳入经济体系,从效率优先向兼顾公平成为了可能。如何创造一个更包容、共同受益的世界?从“股东利益最大化“向”相关利益者利益最大化“的改变,重构服务设计普惠更广泛的人群,在技术向善的路径下有了可能,利他的商业模式如何改变世界?我们一起来探索吧。除了来自各行业的大咖外,大会还有八位来自腾讯CDC不同专业领域的优秀代表,带来他们在技术公益探索所得的经验分享。说到公益,怎能少了我们人见人爱的小红花呢?除了以上的精彩内容,2022年AND服务创新大会更有腾讯公益小红花首次担任TALK主持。在虚拟技术的支持下,小红花从平面走向立体,带你进入大会的每一个环节。如不方便莅临现场,欢迎参与线上直播,点击下方卡片即可预约哦。主办方合作伙伴福利环节即日起至11月15日,分享本文到朋友圈,集齐15个赞,将集赞截图发送至“腾讯CDC体验设计”公众号,并注明“AND服务创新大会”,即可获得60Q币,一共10个名额,先到先得。
2022年11月15日
其他

「递归」第三季Ep4:深耕源于热爱

我们为什么叫「递归」“递归”
2022年11月9日
其他

大牛书单 | Redis好书推荐

2007年,他和朋友一起创建了一个网站,为了解决这个网站的负载问题,他自己定制了一个数据库——这个便是Redis。这位意大利程序员是萨尔瓦托勒·桑菲利波(Salvatore
2022年11月4日
其他

从无栈协程到 C++异步框架

协程和调度器主要带来了以下这些优点:避免大量中间类的定义和使用.基于逻辑过程本身用串行的方式实现相关代码即可(可参考后续切场景的例子).更容易写出数据驱动向的实现.还有比较关键的一点,
2022年10月11日
其他

虚拟内存 & I/O & 零拷贝

将指令分为特权指令和非特权指令,对于那些危险的指令,只允许操作系统及其相关模块使用,普通应用程序只能使用那些不会造成灾难的指令。区分内核空间和用户空间本质上是要提高操作系统的稳定性及可用性。2.1
2022年9月27日
其他

CPU 是如何与内存交互的

这样的协议来维护一个状态机保证数据在多核之间是一致的。为了访问数据安全,便捷,迅速所以加了一层虚拟内存,每个程序在启动的时候都会维护一个页表,这个页表维护了一套映射关系。CPU
2022年9月22日
其他

​探秘 Web 水印技术

数据,用作水印承载元素的背景图片平铺展示即可。这种方式不需要服务端配合,在前端就可以完成,且有助于减少请求和服务端资源开销。曾经面临的浏览器兼容问题现在也不再是问题,该方案已逐渐流行起来。SVG
2022年9月13日
其他

终极 C++避坑指南

&&,而auto选择的是里面最简单的那一种。auto还可以跟指针符、引用符结合,而这种时候它还是满足上面“最简单”的这种原则,并且此时指的是“auto本身最简单”,举例来说:int
2022年9月6日
其他

手写了个可能是Github性能最强的Go跳表

选择用跳表来实现,并优化到了相当好的性能。在此分享一下优化的思路和心得,供大家参考借鉴,如果发现有错误也欢迎指出。一、背景首先为标题党致歉,不过确实没吹牛
2022年9月1日
其他

了解 HTTP 看这一篇就够

规定了八种方法,单词都必须是大写的形式,下面就来看看这些方法:GET:获取资源,可以理解为读取或者下载数据;HEAD:获取资源的元信息;POST:向资源提交数据,相当于写入或上传数据;PUT:类似
2022年8月11日
其他

以小窥大:IO 卡顿探寻苹果文件系统

接口同步查本地图片是否存在,有则直接展示,否则从网络下载图片,下载完成时再尝试删除可能已有的旧文件。这完全是一个非常简单的图片缓存和加载逻辑。通过搜寻卡顿报告,发现子线程都疑似存在大量的并发
2022年8月4日
其他

如何写一份高可读性的软件工程设计文档

42%”更为可信,也更方便读者做出自己的判断。忌佶屈聱牙例如上文,应改为“不要使用过于生僻的词汇,不要过度使用书面语”千万不要写文言文造句使用短句,不要使用多从句的复杂句式。-
2022年7月28日
其他

数据仓库开发 SQL 使用技巧总结

后得执行逻辑,反推就可以得到以上结果。谓词下推谓词下推将查询语句中的过滤表达式计算尽可能下推到距离数据源最近的地方,以尽早完成数据的过滤,进而显著地减少数据传输或计算的开销。谓词下推案例--
2022年7月18日
其他

​浅谈协程

该协程的时候,协程之前保存的栈内容,会被重新拷贝到运行时栈中,这就是所谓的共享栈的原理。测试代码具体的测试代码如下:stackless_co/stackless_co_test.cc#include
2022年6月30日
其他

GPU 渲染管线和硬件架构浅谈

架构对移动端设备而言,控制功耗是非常重要的。功耗高意味着耗电、发热、降频,这会导致我们的游戏出现严重的卡顿或者帧率降低。带宽是功耗的第一杀手,大量的带宽开销会带来明显的耗电和发热。移动端
2022年6月6日
其他

月活 12.8 亿的微信是如何防止崩溃的?

时,则通过,否则决绝。3.自适应优先级调整在大规模微服务场景下,服务器的负载是变化非常频繁的,所以服务器的准入优先级是需要动态变化的,微信分了几十个业务优先级,每个业务优先级下有
2022年5月25日
其他

C++17 在业务代码中最好用的十个特性

严格来说,结构化绑定的结果并不是变量,c++标准称之为名字/别名,这也导致它们不允许被
2022年5月23日
其他

【揭秘】那些当了程序员后才知道的事!

当程序员之前,江湖上总是流传着这些传说:格子衫忠实用户、个个都是黑客、不苟言笑、每天的工作就只是不停地敲键盘...当了程序员之后,才发现这些传说与现实差距这么大。今天他二哥就来吐槽一下,那些当了程序员后才知道的事!不知道大家是否都有同样的感受?欢迎来评论区分享!
2022年5月20日