为python提供基于共享内存的哈希表

pyshmht的Python项目详细描述


皮什姆特
=======

**基于共享内存**python哈希表扩展

有关示例,请参见python文件中的测试用例(pyshmht/cacher.py、pyshmht/hashtable.py),在这些文件中还可以找到性能测试。

性能
===========

容量=200米,64字节密钥/值测试,在(Xeon E5-2670 0@2.60GHz,128GB RAM)上测试

*hash table.c(c中的原始哈希表,在“malloc”ed内存上测试)
>;设置:93万IOPS;
>;获得:235万IOPS;

*性能测试.py(原始python绑定)
>;设置:451k IOPS;
>;获取:272K IOPS;

*hashtable.py(简单包装,无序列化)
>;设置:354K IOPS;
>;获取:20.2万IOPS;

*cacher.py(缓存包装,带序列化)
>;设置:501K IOPS(缓存),228K IOPS(写回后);
>;获取:560k IOPS(缓存),238k IOPS(无缓存);

*python本机dict
>;设置:741K IOPS;
>;获得:390K IOPS;

注意
======

在hashtable.c中,默认最大密钥长度为“256-4”,最大值长度为“1024-4”;您可以手动更改“bucket-size”和“max-key-size”,但请记住,增加这两个参数将导致更大的内存消耗。

如果您发现任何错误,请提交问题或向我发送请求,我将尽快处理:)

p.s.`hashtable.c`是独立的(即与python无关),如果需要,您可以在其他项目中使用它。:p页

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java获取骆驼路由交换正文()中的无效字符   java如何在Android中创建多语言枚举?   java如何将多个ArrayList<Hashmap>值组合到一个ListView中   后缀运算符Java后增量和预增量行为   SQlite在java中更新列号   Mac OS Yosemite上的java No JRE 1.8虚拟机   java swing在Jlabel中遇到问题   JAVAutil。scanner小java程序打印不可见的换行符?   java从原点到点的路径数   java重写Excel列而不是创建新列   将一行从SQL数据映射到Java对象   spring Application Insights Java SDK+代理不能很好地协同工作   java排序字符串列表?不使用长度函数查找列表的长度   java使用stream collect返回相同的列表,对重复项进行剪切和求和,抛出一个非静态引用   将字母字符与前面没有百分号的Java正则表达式匹配