- 博客(30)
- 资源 (5)
- 收藏
- 关注
原创 【XML协议】轻松掌握使用C++ XML解析库——pugixml
文章介绍了XML的结构组成,以及开源C++ XML解析库pugixml如何使用。解释了pugixml库中结构是如何与xml对应起来的。总结了如何快速掌握和回忆起pugixml库的常用操作。
2024-11-12 00:09:00
1475
原创 redis过期键删除策略
redis是内存型数据库,需要处理好过期键来保证过期策略和内存可控。对于设置了过期时间的键,会在db->expires中存储该键对应的过期时间戳。过期键删除策略是定期删除和惰性删除相结合的策略。惰性删除是指访问到该键时校验是否过期,过期执行删除。对于周期删除,为保证定期删除可控,严格控制每次定期删除时遍历db数量、采样键数量、执行时间等指标。定期删除提供了fast模式,该模式下会放宽执行时间和遍历的db数。通过这两种方式,来处理redis的过期键,保证过期逻辑和内存可控。
2024-11-03 18:18:46
795
原创 Redis后台任务有哪些
redis 针对大文件关闭、大内存释放、刷盘这些操作,分别使用对应的后台线程防止其阻塞线上请求,保证线上请求的高性能。其实现方式比较清晰,每种后台任务对应一个链表实现的消费队列和一个后台线程作为消费者,前台请求只需要通过提交函数向队列中追加待执行任务即可
2024-10-28 23:29:31
835
原创 【提升服务影响速度】高性能string库-stringzilla
文章介绍了stringzilla开源库的基本使用和实现思路。该库2023年下半年开源,目前已经获得2000+star,作者使用SIMD做字符串常见操作的加速,支持多个指令集和多种语言,提升字符串常用操作执行速度近10倍。提供简洁的使用方式,能够以较小改造成本提升服务表现。
2024-09-21 10:11:36
939
原创 Redis内存淘汰策略
redis内存超出设置阈值时,会在处理命令的同时执行淘汰策略,本文参照redis7.0源码,解析了8种内存淘汰策略和实际执行流程。
2024-07-27 18:52:04
1835
原创 spdlog生产者消费者模式
介绍了C++开源日志spdlog的异步模式实现,重点分析了其中环形队列的实现、消息队列的实现以及生产者消费者模式的实现方式。
2024-06-23 21:34:54
682
原创 【spdlog封装】C++日志库spdlog用法与封装
介绍C++开源日志库spdlog的基本概念和使用方法,在spdlog基础上封装成C语言风格和python风格的两种日志宏
2024-06-18 00:59:39
1746
原创 服务内存占用分析
介绍linux系统下,如何分析进程的内存占用。常用的进程内存占用情况查看命令,以及使用valgrind massif 和jeprof两个工具查看具体的内存分布在哪些地方
2024-03-26 22:34:34
1052
原创 C++ 基于多态的插件式开发
插件基类定义了所有插件需要上报的一些基础信息和插件类型。kUnknown, // 未知类型kCodec, // 编解码插件kConfig, // 配置读写组件kCache, // 缓存组件kNaming, // 寻址组件public:我们定义了一个缓存类插件,包含一些基础的读写接口,所有缓存插件必须实现这些功能public:// 对于缓存组件我们规定以下几个动作:// Init:初始化// Destry:回收资源// Set:写缓存// Get:读缓存。
2023-12-21 00:15:22
1071
原创 AC自动机原理及其在query意图理解中的应用
文章介绍了AC自动机(aho corasick)的基本原理,包括如何构建前缀树和如何连接失配指针。接着给出了一般基础的实现,最后介绍了其在query理解中的敏感信息识别、黑名单、槽位提取中的应用
2023-12-03 22:51:40
1306
原创 代码随想录-二叉树
中序遍历与前序遍历不同的点在于push_back val的时机,前序遍历时第一次碰到的就是中节点,直接push_back。而中序遍历是在遍历完所有左节点之后,访问到的节点认为是目标值节点。非迭代的普通写法中需要注意右节点重复的情况。
2023-11-26 23:27:14
586
1
原创 query意图分类-lexparser
在query意图分析中,lexparser一种基于规则的词法分析工具,用于在需求前期,一些运营数据和规则,就能够快速满足头部query的需求。
2023-11-26 21:41:29
743
1
原创 HiRedis库封装
context中比较常用的是 err错误码、errstr错误信息、connect_timeout、 command_timeout两个超时时间。对于连接池往往存在Get, Put两个操作,为了避免用户忘记Put, 在获取一个连接时,对shared_ptr的析构进行指明,解决了这一问题。,第一个参数是创建的context,后面的参数则是redis命令,返回的是redisReply指针。redisContext是非线程安全的,多数情况下需要我们自己封装一个连接池,对连接进行复用。
2023-02-26 23:08:27
1161
2
原创 基于梯度下降的系统参数辨识及MATLAB App设计
基于梯度下降的思想,采用固定学习率、最速下降法和共轭梯度法求解,在定常和时变系统上做参数辨识
2020-03-30 11:14:09
1754
1
原创 静态手势识别总体方案
静态手势识别总体方案0.说明1.实现目标2.实现步骤1)总体思路2)每部分效果基于高斯肤色模型和动态阈值的手势分割基于Canny算法的轮廓提取基于Hu矩的量化基于傅里叶描述子的量化分类融合特征分类其他尝试0.说明静态手势识别是2019年四五月份做的一次设计,实验平台是Matlab。主要针对静态手势,采用肤色模型分离手部区域,提取手势的轮廓信息,采用不同的描述方式进行量化,最后采用BP神经网络和...
2019-08-22 14:39:18
5257
8
原创 win10 64位下Oracle10g安装
写这篇真实属于发泄一下这一两天的安装悲剧,刚开始安装的Oracle19c,但是教程使用的Oracle10g,并且最新版的网页版的EM真实对于新手除了看看性能指标,其他不知所措。刚开始安装10g的时候是装的与系统匹配的64位,经历了系统版本不匹配问题,然后搜教程更改文件,安装完之后没有兼容xp的选项,运行EM登录时经常闪退。写这篇文章的时候没有在出现登录闪退的情况,如果有闪退可以尝试:开启所有oracle服务,修改EM文件的控制权限,兼容管理运行。口令管理,设置用户的口令,通常在这里解锁和设置scott。
2019-08-22 13:32:58
7835
9
基于BP神经网络的增量式PID控制
2021-06-16
梯度下降参数辨识.rar
2020-03-29
梯度下降参数辨识.pdf
2020-03-29
MainCode.rar
2020-03-29
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人