小编use*_*898的帖子

实现__hash __()的正确和好方法是什么?

什么是正确和好的实施方式__hash__()

我在谈论返回哈希码的函数,该哈希码随后用于将对象插入哈希表,即字典.

__hash__()返回一个整数并用于将对象"分箱"为哈希表时,我假设返回的整数的值应该为公共数据均匀分布(以最小化冲突).获得这些价值观的好习惯是什么?碰撞是一个问题吗?在我的例子中,我有一个小类,它充当一个容器类,包含一些int,一些浮点数和一个字符串.

python dictionary hashtable hashcode

126
推荐指数
4
解决办法
6万
查看次数

如何确定内存是否对齐?

我是使用SSE/SSE2指令优化代码的新手,直到现在我还没有走得太远.据我所知,一个常见的SSE优化函数如下所示:

void sse_func(const float* const ptr, int len){
    if( ptr is aligned )
    {
        for( ... ){
            // unroll loop by 4 or 2 elements
        }
        for( ....){
            // handle the rest
            // (non-optimized code)
        }
    } else {
        for( ....){
            // regular C code to handle non-aligned memory
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,如何正确确定内存ptr点是否与16字节对齐?我认为我必须包含非对齐内存的常规C代码路径,因为我无法确保传递给此函数的每个内存都将对齐.使用内在函数将数据从未对齐的内存加载到SSE寄存器似乎非常慢(甚至比常规C代码慢).

先感谢您...

c memory optimization sse simd

40
推荐指数
6
解决办法
4万
查看次数

标签 统计

c ×1

dictionary ×1

hashcode ×1

hashtable ×1

memory ×1

optimization ×1

python ×1

simd ×1

sse ×1