摘要:
内存是在程序中打交道不可缺少的存在,或者在GC语言中内存概念会被刻意的屏蔽掉,但如果是栈递归函数调用自身这种情况,stack overflow这种情况是一样的会碰到的,所以了解下堆与栈碰到问题的时候好解决问题 阅读全文
内存是在程序中打交道不可缺少的存在,或者在GC语言中内存概念会被刻意的屏蔽掉,但如果是栈递归函数调用自身这种情况,stack overflow这种情况是一样的会碰到的,所以了解下堆与栈碰到问题的时候好解决问题 阅读全文
posted @ 2023-12-04 09:50
问蒙服务框架
阅读(365)
评论(1)
推荐(0)
`wmproxy`已用`Rust`实现正反向代理,Rust中异步大将tokio与系统socket不得不沟通的故事。
wmproxy wmproxy是由Rust编写,已实现http/https代理,socks5代理, 反向代理,静态文件服务器,内网穿透,配置热更新等, 后续将实现websocket代理等,同时会将实现过程分享出来, 感兴趣的可以一起造个轮子法 项目地址 gite: https://gitee.com
本章节主要讲的是如何配置热加载,会碰到什么问题,要怎么处理。`wmproxy`是由`Rust`编写,已实现`http/https`代理,`socks5`代理, 反向代理,静态文件服务器,内网穿透,配置热更新等,
wmproxy将用Rust实现http/https代理, socks5代理, 反向代理, 静态文件服务,讲述的是主动式健康检查可带来的好处
`wmproxy`将用`Rust`实现`http/https`代理, `socks5`代理, 反向代理, 静态文件服务器,后续将实现`websocket`代理, 内外网穿透等, 会将实现过程分享出来, 感兴趣的可以一起造个轮子法, 一些实现类nginx可能在rust会碰到的问题,一起探讨下一些实现在Rust中的原理。
你知道HTTP中的压缩算法是如何工作的吗, 他们的压缩比又是多少, 能起到多少作用吗? 他的限制又是多少吗? 他存在的意义给我们带来了什么?
wmproxy, 通讯协议的定义, 粘包拆包的解决方案, 代理的网络的拓扑图, 协议的分类, 消息的包头, 消息类型的定义
Lua的处理速度较慢,为了高性能,通常有许多函数会放到Rust层或者底层进行处理,此时有一个快速的映射就可以方便代码的快速使用复用,而通过derive宏,我们可以快速的构建出想要的功能。
Rust宏可以极大的简化编写的难度,学习好宏可以更好的减少冗余代码。
综上所述,LFU算法通过跟踪数据项的访问频次来决定淘汰对象,适用于数据访问频率差异较大的场景。与LRU相比,LFU更能抵御偶发性的大量访问请求对缓存的冲击。然而,LFU的实现较为复杂,需要综合考虑效率和公平性。在实际应用中,应当根据具体的数据访问模式和系统需求,灵活选择和调整缓存算法,以达到最优的性能表现。
带ttl的Lru可以一定程序上补充缓存的可用性。更方便的让您操作缓存。将内存与命中率进行完美的结合。
Lru-k与lru的区别在于多维护一个队列,及每个元素多维护一个次数选项,对于性能的影响不大,仅仅多耗一点cpu,但是可以相应的提高命中率,下一章将介绍LFU按频次的淘汰机制。
好的测试用例及性能测试是对一个库的稳定及优秀的重要标准,尽量的覆盖全的单元测试,能及早的发现bug,使程序更稳定。
TimerWheel算法通过其独特的数据结构和运行原理,实现了高效、可扩展且灵活的定时任务管理。该结构用于对高性能的定时器框架,尤其密集程度越高的定时器效率越高。
源码剖析-LRU(Least Recently Used)是一种常用的页面置换算法,其核心思想是选择最近最久未使用的页面予以淘汰。
现在免费证书只能申请三个月(之前还能申请十二个月),拥有acme能力对于小的站点来说就比较需要,可以比较好的部署也不用关心TLS带来的烦恼。
浙公网安备 33010602011771号