摘要: 面试题 问题:下面这段代码会输出多少次 hello ? #include <stdio.h> #include <stdlib.h> #include <unistd.h> void test() { fork() && fork() && fork() && sleep(10); printf(" 阅读全文
posted @ 2024-01-31 11:02 我的娃会叫爸爸啦 阅读(3) 评论(0) 推荐(0) 编辑
摘要: 数学运算性能 大多数数据运算不存在性能问题,但是相对来说,整型的除法运算还是比较昂贵的。 参考下面的例子: uint32_t BM_S1(uint64_t v) { uint32_t result = 0; do { ++result; v /= 10; } while (v); return re 阅读全文
posted @ 2023-03-09 18:45 我的娃会叫爸爸啦 阅读(50) 评论(0) 推荐(0) 编辑
摘要: 本文记录下日常工作中用到的性能分析工具。 一、内存泄漏排查 我的服务依赖了 jemalloc,这个地方记录下使用 jemalloc 进行内存分析的方法。 1 编译 jemalloc 首先,依赖的 jemalloc lib 需要开启 profiling 功能。 $ wget https://githu 阅读全文
posted @ 2023-03-09 12:53 我的娃会叫爸爸啦 阅读(397) 评论(0) 推荐(0) 编辑
摘要: 2022年后,被安排维护新闻推荐系统的粗排服务。通过初步摸排,发现该服务存在很大的性能问题。流量高峰期服务可用性只能到1个9,cpu使用率也只能到20%,服务内部存在很大的性能问题。 一 粗排简介 推荐架构中,粗排介于召回和精排之间,是性能和效果的折中的产物。粗排的输入为所有召回的item(万级别, 阅读全文
posted @ 2023-03-09 10:47 我的娃会叫爸爸啦 阅读(121) 评论(0) 推荐(0) 编辑
摘要: 一 简介 MMR(Maximal Marginal Relevance,最大边际相关性) 算法多用于推荐场景,目标是减少排序结果的冗余。MMR 算法在物品的相关性和相似性之间做了权衡,在保证相关性的基础上,减少相似性,保证了推荐结果的多样性。 MMR 算法公式如下: 二 问题 该算法采用的贪心策略, 阅读全文
posted @ 2023-03-06 14:38 我的娃会叫爸爸啦 阅读(491) 评论(0) 推荐(0) 编辑
摘要: 1. 保存core dump文件 默认linux系统的core dump可能没有打开,因为core dump文件很大,会大量占用机器资源。为了保存core dump文件,需要运行前设置 ulimit -c unlimited core文件会保存在当前目录下,并且只对当前终端有效,可以用命令修改cor 阅读全文
posted @ 2021-10-29 17:40 我的娃会叫爸爸啦 阅读(242) 评论(0) 推荐(0) 编辑
摘要: 聊天室开发心得 之前在新浪微博工作期间,开发了一个用于在线直播互动的聊天室项目,虽然最后由于高层决策的原因,微博最后没有采用我们的服务,但觉得还是可以将这个项目开发过程分享一下,有一些点可以参考的。 这是最开始的一个架构图: 客户端维护两个链接,一个是与网关的长链,用于接收下推的消息和事件;一个是与 阅读全文
posted @ 2017-12-22 12:50 我的娃会叫爸爸啦 阅读(1023) 评论(1) 推荐(0) 编辑
摘要: Docker 学习笔记 Docker 能处理的事情包括: + 隔离应用依赖 + 创建应用镜像并进行复制 + 创建容易分发的即启即用的应用 + 允许实例简单、快速的扩展 + 测试应用并随后销毁它们 Docker 背后的想法是创建软件程序可移植的轻量容器,让其可以在任何安装了 Docker 的机器上运行 阅读全文
posted @ 2017-12-16 22:35 我的娃会叫爸爸啦 阅读(219) 评论(0) 推荐(0) 编辑
摘要: ![](http://images2017.cnblogs.com/blog/455275/201712/455275-20171216215146483-930514962.jpg) ![](http://images2017.cnblogs.com/blog/455275/201712/455275-20171216215157452-1514138967.jpg) ![](http://... 阅读全文
posted @ 2017-12-16 21:54 我的娃会叫爸爸啦 阅读(213) 评论(0) 推荐(1) 编辑
摘要: ```lua local function decodeNodes(nodes) local table = {} for _, value in ipairs(nodes) do if value.nodes then table[value.key] = decodeNodes(value.nodes) elseif va... 阅读全文
posted @ 2017-07-17 15:57 我的娃会叫爸爸啦 阅读(433) 评论(0) 推荐(0) 编辑