2个不稳定版本
0.3.0 | 2023年3月22日 |
---|---|
0.1.0 | 2023年3月19日 |
241 在 缓存
每月下载量 38
用于 odilia
585KB
1K SLoC
odilia-cache
Odilia屏幕阅读器的缓存层。这个crate是主Odilia仓库的一个子目录。
该crate的主要结构是
Arc<DashMap<AccessibleId, Arc<RwLock<CacheItem>>>>
该结构的各个部分有助于该crate提供的不同功能。`Arc<DashMap<_>>` 允许缓存跨线程使用。并且映射的值是 `Arc<RwLock<CacheItem>>`,这使得我们可以直接引用其他缓存项,也可以在哈希表中通过ID查找它们。
开发
如果您想使Odilia成为一个更高效的屏幕阅读器,这里就是您要来的地方。请随时与我们合作实现测试,并提高基准测试。或者,如果您在实现之前想提出想法,请在GitHub上提出建议。
如果您需要温和地了解代码库,我们也可以提供帮助。
性能
为Odilia编写了一些基准测试。其中大多数与从缓存中引用各种项目的速度有关。
如果您想进行详细性能基准测试,我们建议使用 flamegraph
包来显示性能瓶颈。还有一个名为 hotspot
的C++程序,可在AUR以及一些主要软件包仓库中找到,它可以以可访问(GUI)的方式显示程序各部分花费的时间。
首先,使用以下命令安装子命令
$ cargo install flamegraph
如果需要,可以从AUR/您的软件包仓库安装Hotspot,以及 perf
,后者是生成火焰图的必备工具。
$ paru/yay -S hotspot perf
最后,将以下内容添加到根目录的 Cargo.toml
[profile.bench]
debug = true
现在,您可以使用以下命令生成以下基准测试的火焰图
cargo flamegraph --bench load_test -- --bench [individual_bench_name]
依赖关系
~12-29MB
~395K SLoC