Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在抓取数据时维护黑名单的最佳方法-C#.Net 4.5_C#_.net_Asynchronous_Web Scraping - Fatal编程技术网

在抓取数据时维护黑名单的最佳方法-C#.Net 4.5

在抓取数据时维护黑名单的最佳方法-C#.Net 4.5,c#,.net,asynchronous,web-scraping,C#,.net,Asynchronous,Web Scraping,我正在用C#编写一个刮板,它将从html中收集ID号。它为html发送异步http请求(使用ThreadPool.QueueUserWorkItem),回调方法从html解析ID 在附加到文本文件之前,必须根据黑名单检查每个ID。目前,我正在对每个请求运行一个针对嵌入式SQLite db的查询,以检查黑名单,如果黑名单不存在,则将ID写入一个文件 我的应用程序占用了高达90%的CPU,我想这是因为每个异步回调完成了多少读/写操作 那么,有没有更有效的方法来实现这一点呢?由于SQLite查询,您不

我正在用C#编写一个刮板,它将从html中收集ID号。它为html发送异步http请求(使用ThreadPool.QueueUserWorkItem),回调方法从html解析ID

在附加到文本文件之前,必须根据黑名单检查每个ID。目前,我正在对每个请求运行一个针对嵌入式SQLite db的查询,以检查黑名单,如果黑名单不存在,则将ID写入一个文件

我的应用程序占用了高达90%的CPU,我想这是因为每个异步回调完成了多少读/写操作


那么,有没有更有效的方法来实现这一点呢?

由于SQLite查询,您不太可能看到这种CPU负载。每个HTTP请求执行一个查询—HTTP请求比访问数据库花费的时间要长得多,即使SQLite执行完整的表扫描


您应该使用探查器,找出代码的哪一部分占用大量CPU。同样,除非您的SQLite查询包含(大量)复杂的联接,否则我很确定这不是问题所在。

我发现vs2013内置了一个探查器,所以这将非常好。谢谢你帮我做业余爱好:)