bloomfilter.h

来自「概述:数据的纵向收集」· C头文件 代码 · 共 40 行

H
40
字号
//sunwangme@hotmail.com
#pragma once
#include "RWLock.h"

#define _BITMAP_LENGTH_	(1024*128*8)
#define _BITMAP_COUNT_	(12)

class CBloomFilter
{
public:
	static CBloomFilter* Instance();
	~CBloomFilter();
	static void Release();

protected:
	CBloomFilter();
	CBloomFilter(const CBloomFilter&);
	CBloomFilter& operator=(const CBloomFilter&);

public:
	bool find(LPCSTR lpszUrl);
	void insert(LPCSTR lpszUrl);
	void clear();

protected:
	bool DoCheckBitmap(BYTE* bitmap,int length,int offset);
	void DoSetBitmap(BYTE* bitmap,int length,int offset);

private:
	BYTE* m_BitMap[_BITMAP_COUNT_];
	CRWLock m_lock;
	static CBloomFilter* s_pBloom;
};

//2007.3.21,sunwang
//count = 8 100w个url,冲突为3726
//count = 12 100w个url,冲突为320
//count =12 50w个url,冲突为0      [ok]
//count =8 50w个url,冲突为24

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?