2015-10-12 66 views
1

我将通过WebAPI从服务器端提供指纹认证。下面的代码是指纹比较部分。在服务器端提供指纹比较的最佳方式

var allFingerprints = container.Fingerprints.OrderByDescending(p=>p.FingerprintID); 

List<Fmd> fmdList = new List<Fmd>(); 

foreach (var fp in allFingerprints) 
{ 
    fmdList.Add(Fmd.DeserializeXml(fp.FMD)); 
} 

IdentifyResult identifyResult = Comparison.Identify(customerFmd, 0, fmdList, thresholdScore, 2); 

如果少量(< 3000)指纹是在DB,我认为这将是确定读取数据库的指纹进行比较。但是,如果指纹数量变得越来越大,并且服务器稍后会从客户端获得大量API调用,那么从数据库读取指纹并进行比较的最佳方法是什么?我是否必须将指纹列表保存在内存中并进行比较?提前感谢您的宝贵意见。

+0

我有同样的问题。面对与我的Windows应用程序完全相同的问题 – hriziya

回答

0

如果您使用EF,某些信息将自动记忆在内存中。但是如果你想制作自己的结构,可以使用字典而不是列表。你也可以使用redis来达到这个目的。

+0

如果有一百万条记录并且我们想要查询它会怎样?如果将它全部放入字典并将其传递给Identify()函数是否可行? – hriziya

+0

我不确定。你需要测试一下,看看性能。也许redis是更好的选择,但字典是最容易实现的。 – Zarko

相关问题