#低开销 #结构 #数据 #算法 #项目 #

eta-algorithms

专注于性能的低开销数据结构

20个稳定版本

1.5.4 2024年8月18日
1.5.1 2024年8月17日

#225数据结构

Download history 671/week @ 2024-08-09 552/week @ 2024-08-16

1,223 每月下载量
用于 2 crates

自定义许可

53KB
1.5K SLoC

描述

我在我的项目中使用的自定义数据结构。

这些数据结构的全套思想是要尽可能快。

我为了低开销和速度牺牲了一些功能。代码主要针对X86_64架构。没有针对其他架构可能发生的特殊情况的检查。

我在两台不同的机器上对代码进行了基准测试

基准结果待更新

测试于

AMD Ryzen 9 7900X 12核处理器 4.70 GHz

32GB DDR4 5200MHz

结果如下

数据结构 推送时间平均 弹出时间平均 求和平均
自定义数组 - - 289ms
Vec - - 309ms
队列自定义 - - 16ms
双端队列 - - 29ms
自定义栈 - - 16ms
Vec栈 - - 19ms

安全性

我为尽可能多的案例编写了测试。如果您认为有什么遗漏,请联系我或提交PR。

  • 代码本身应该是安全的。
  • 如果您做了意外的事情或错误地使用了结构,它们将引发恐慌
  • 不应该有任何未定义的行为

用法

将此添加到您的Cargo.toml中

[dependencies]
eta-algorithms = "1.0.2"

#许可

许可

基于MIT的自定义许可

版权(c)2024 Helecz Erik

以下是对任何获得此软件及其相关文档文件(“软件”)副本的人的授权,免费授权,允许任何人在不受限制的情况下处理软件,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件的副本,并允许将软件提供给他人,以便他们可以这样做,前提是以下条件

  1. 上述版权声明和本许可通知应包含在软件的所有副本或主要部分中。

  2. 软件可用于任何目的,包括商业应用。

  3. 用户被禁止为创建单独的发行版的目的而分支或创建软件仓库或代码库的副本。

  4. 对软件的任何修改、改进或添加都必须作为拉取请求提交给原始仓库。版权所有者保留批准、修改或拒绝这些拉取请求的权利。

  5. 本许可证明确禁止在除本许可证之外的任何其他许可条款下重新分发软件或任何修改版本。

软件按“原样”提供,不提供任何明示或暗示的保证,包括但不限于适销性、特定用途适用性和非侵权性保证。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任承担责任,无论这种责任是基于合同、侵权或其他原因,是否与软件有关、使用或以其他方式处理软件。

无运行时依赖