自由技艺
资深AI算法和C++软件工程师,专注于下一代分布式AI系统,曾就职于华为、百度,北邮土著博士
请关注知乎同名账号
展开
-
Intel CPU 上使用 pmu-tools 进行 TopDown 分析
title: Intel CPU 上使用 pmu-tools 进行 TopDown 分析date: 2021-01-24 18:40author: gatiemetags:debuglinuxtodowncategories:debugthumbnail:blogexcerpt: 这篇文章旨在帮助希望更好地分析其应用程序中性能瓶颈的人们. 有许多现有的方法可以进行性能分析, 但其中没有很多方法既健壮又正式. 而 TOPDOWN 则为大家进行软硬协同分析提供了无限可能. 本文通过 pm原创 2021-05-10 11:00:58 · 1258 阅读 · 0 评论 -
memcpy 内存优化方法
内存拷贝的优化方法http://www.blogcn.com/blog/cool/main.asp?uid=flier_lu&id=1577430http://www.blogcn.com/blog/cool/main.asp?uid=flier_lu&id=1577440在复杂的底层网络程序中,内存拷贝、字符串比较和搜索操作很容易成为性能瓶颈所在。编译器自带的此类函数虽然做了一些通用性的优化工作,但因为在使用指令集方面受到兼容性的约束,远远没有达到最大限度利用硬件能力的地步。而通过针原创 2021-04-07 16:06:14 · 1344 阅读 · 0 评论 -
feature guided optimization
分支预测if elseswitch case常量传播循环展开函数冷热分区、函数重排BB 重排尾部复制根据控制流信息,把return语句提到各个分支,较少跳转原创 2021-03-09 14:50:36 · 88 阅读 · 0 评论 -
微信 libco 协程库
https://runzhiwang.github.io/2019/06/21/libco/原创 2020-12-10 17:38:56 · 147 阅读 · 0 评论 -
bolt 优化
facebook 开源代码地址:https://github.com/facebookincubator/BOLTninja-build 环境安装ninja是一个小型构建系统,专注于速度,和常用的make类似,有一些软件就是基于ninja编译构建的,比如clickhouse数据库就需要依赖ninja,因为最近在研究clickhouse,需要依赖于gcc 7,gtest,ninja等一些组件,所以单独拿出来这些组件记录安装过程,这样会更清晰一些.ninja需要依赖于re2c,否则编译是会报错,re2c原创 2020-10-31 10:18:52 · 947 阅读 · 0 评论 -
十大高性能开发宝石
https://blog.csdn.net/xuanyuan_fsx/article/details/108081259I/O优化:零拷贝技术I/O优化:多路复用技术线程池技术无锁编程技术进程间通信技术RPC && 序列化技术数据库索引技术缓存技术 && 布隆过滤器全文搜索技术负载均衡技术...转载 2020-08-20 20:16:54 · 214 阅读 · 0 评论 -
软件性能优化模型
性能优化有三个层次: 系统层次 算法层次 代码层次系统层次关注系统的控制流程和数据流程,优化主要考虑如何减少消息传递的个数;如何使系统的负载更加均衡;如何充分利用硬件的性能和设施;如何减少系统额外开销(比如上下文切换等)。算法层次关注算法的选择(用更高效的算法替换现有算法,而不改变其接口);现有算法的优化(时间和空间的优化);并发和锁的优化(增加任务的并行性,减小锁的开销);数据结构的设计(比如lock-free的数据结构和算法)。代码层次关注代码优化,主要是cache相关的优化(I-ca原创 2020-08-18 20:26:28 · 1691 阅读 · 0 评论 -
性能优化 -- 数组查询为什么比链表快?
1、寻址操作次数链表要多一些。数组只需对 [基地址+元素大小*k] 就能找到第k个元素的地址,对其取地址就能获得该元素。链表要获得第k个元素,首先要在其第k-1个元素寻找到其next指针偏移,再将next指针作为地址获得值,这样就要从第一个元素找起,多了多步寻址操作,当数据量大且其它操作较少时,这就有差距了。该回答源自:http://tieba.baidu.com/p/50691204372、...转载 2020-02-27 18:00:12 · 1305 阅读 · 0 评论