tower-ratelimit - tower限流中间件
该项目是一个基于滑动窗口计数算法实现的限流算法,灵感来自于Cloudflare的博文"我们如何构建能够扩展到数百万域名的限流系统"。
该项目提供了一个使用Axum构建的HTTP服务器示例,可以通过执行cargo run --example axum来运行。同时还包含了一个Python脚本load.py,用于模拟限流情况。
示例输出显示了对于不同路径(/a、/b、/c)设置的不同限流规则,以及成功请求和被限流请求的分布情况。
最后,该项目使用了Unlicense许可证。
https://github.com/miedzinski/tower-ratelimit
一些在Rust中优化代码性能的技巧
这篇文章主要介绍了一些在Rust中优化代码性能的技巧,以便解决Advent of Code编程挑战时获得最快的运行速度。主要包括以下几个方面:
彻底基准测试,使用criterion.rs框架对代码进行可靠的基准测试,获取可靠的数字指标作为优化依据。
使用Rayon进行并行化,Rayon使并行化代码变得简单,只需添加par_前缀即可启用并行。
使用HashMap和HashSet的替代品,如对于小的数据集可使用Vec代替。
使用Const Generics在编译期进行计算以提高运行效率。
积极缓存计算结果以减少重复计算。
优化内存分配,避免不必要的分配和复制。
减少内存重新分配的次数。
选择合适的排序函数,如对小数据使用insert_sort。
选择合适的解析器,避免不必要的解析和内存分配。
在必要时查看汇编代码,了解代码的底层执行情况。
总的来说,这些优化技术都可以有效提升Rust代码的执行效率,使代码在保持可读性的同时获得很大的性能提升。
https://nindalf.com/posts/optimising-rust/
--
From 日报小组 Mike
社区学习交流平台订阅:
Rustcc论坛: 支持rss 微信公众号:Rust语言中文社区