Python xxHash 模块2024 年 8 月 29 日 | 阅读 6 分钟 xxhash 是一个用于 Yann Collet 的 xxHash 库的 Python 模块。 xxHash 是一种极快的哈希计算,运行速度接近内存速度极限。它有效地通过了 SMHasher 测试套件,该套件评估哈希能力的性能、分布和不规则性特征。代码高度可移植,并且所有平台上的哈希值都相同(几乎没有大小端差异)。 处理大量数据只是问题的一部分。哈希在诸如哈希表和布隆过滤器等结构中也很有用。在这些用例中,哈希大量小数据(从几个字节开始)是很常见的。计算在这种场景下的性能可能完全不同,因为计算的某些部分,例如初始化或最终化,会产生固定成本。分支预测失误的影响也变得更加显著。 XXH3 专为处理长短数据源的卓越性能而设计。 质量速度并不是唯一重要的属性。生成的哈希值应具有出色的分布和随机性,以便其任何子段都可用于分散表或索引,并根据生日悖论将冲突的可能性降至理论上的最小值。 xxHash 已通过 Austin Appleby 出色的 SMHasher 测试套件进行了测试,并通过了所有测试,确保了合理的质量水平。它还通过了 SMHasher 的较新分支的扩展测试,包括额外的场景和条件。 最后,xxHash 提供了其巨大的冲突分析器,能够生成和比较数十亿个哈希值,以测试 64 位哈希计算的极限。在这方面,xxHash 取得了遵循生日悖论的优异成绩。 构建修饰符以下宏可以在构建时设置,以修改 libxxhash 的行为。默认情况下,它们通常处于禁用状态。
安装从源代码安装 前提条件 在 Debian/Ubuntu 上 在 CentOS/Fedora 上 用途可以使用模块属性 VERSION 和 XXHASH_VERSION 分别获取模块版本及其后端 xxHash 库版本。 此模块与 hashlib 兼容,这意味着您可以像使用 hashlib.md5 一样使用它。
md5 digest 返回字节,但原始的 xxh64 和 xxh32 C API 返回整数。虽然此特定模块是 hashlib 兼容的,但还提供了 intdigest() 以获取整数摘要。 此模块提供的哈希算法的构造函数是 xxh64() 和 xxh32()。 例如,要获取字节字符串 b'Nobody assesses the spammish reiteration' 的摘要 下一个主题Python 中的转义序列 |
在本教程中,我们将学习 Python 中的数据导向编程 (DOP) 作为传统面向对象编程 (OOP) 的替代方案。顾名思义,我们实践一种将数据放在首位的编程方法。我们可以通过以下方式实现这一点...
阅读 12 分钟
在数据分析和数据科学领域,专家们可以使用大量工具和编程语言来执行数据控制、分析和可视化。其中,Alteryx 和 Python 是两个强大的竞争者,每个都提供独特的优势和用例。在本文中,我们将...
阅读 6 分钟
?在本教程中,我们将看到如何编写代码来打印 Python 错误层次结构。但在开始之前,我们应该首先了解异常到底是什么?异常是指即使我们的代码在语法上是正确的也可能发生的错误。这些不是...
阅读 2 分钟
是一种机器学习算法,它使用随机梯度下降进行预测。为了预测连续变量,例如价格或概率,它使用一种特定类型的线性回归。它通过将数据集作为输入,然后使用其梯度...
阅读 2 分钟
当我们谈论“自动化”时,人们通常会想到技术和失业的重大变化。关于自动化的好处远多于坏处。我很高兴自动化对于像我这样的专业拖延者和懒惰的怪人来说是一种福音。自动化基本上是这个过程...
14 分钟阅读
简介 基于比较的排序算法快速排序使用分治策略。它根据它们是小于还是大于作为枢轴的元素,将剩余的成员分成 2 个子数组(或子列表),该枢轴是从……中选择的“枢轴”元素。
阅读 4 分钟
在我们开始使用 Python 编程语言构建区块链之前,让我们回到最初。2008 年,一位(或多位)作者以中本聪的笔名发布了一篇白皮书,描述了一种纯粹的点对点电子现金版本。独家介绍...
阅读 13 分钟
在本教程中,我们将讨论如何使用 uuid 模块在 Python 中生成 UUID。在深入探讨此主题之前,让我们了解 UUID 的基本概念。简介 UUID 是通用唯一标识符的缩写名称,也称为 GUID,即全局唯一标识符….
阅读 8 分钟
在本教程中,我们将学习Python的struct模块并理解其功能。Python中的struct模块提供了处理C风格数据结构和二进制数据的工具。它用于根据指定的格式将数据打包到二进制表示或从二进制表示中解包。这对于...
5 分钟阅读
一个整数被称为 n 阶阿姆斯特朗数。当它每个数字被分离、立方并相加时,结果之和与该数字相同,(即,pqrs... = pn + qn + rn +...)
阅读 3 分钟
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India