小编sup*_*erb的帖子

如何使用callgrind只分析一段时间的程序执行?

我想使用valgrind进行一些分析,因为它不需要重新构建程序.(我要配置的程序已经使用"-g"构建)

但是valgrind(callgrind)很慢......所以这就是我要做的事情:

  1. 启动服务器(我想配置该服务器)
  2. 一种附加到该服务器
  3. 在服务器上执行某些操作之前,请先开始收集配置文件数据
  4. 操作完成后,结束收集配置文件数据
  5. 分析分析数据.

我可以在Solaris上使用sun studio来做这种事情.(使用dbx).我只想知道是否可以使用valgrind(callgrind)做同样的事情?

谢谢

profiling valgrind callgrind

20
推荐指数
3
解决办法
1万
查看次数

如何构建基于Scrapy的Web爬虫永远运行?

我想构建一个基于Scrapy的网络爬虫来从几个新闻门户网站上获取新闻图片.我想这个爬虫是:

  1. 永远奔跑

    意味着它会定期重新访问一些门户页面以获取更新.

  2. 安排优先事项

    为不同类型的URL提供不同的优先级.

  3. 多线程获取

我已经阅读了Scrapy文档,但没有找到与我列出的相关的东西(也许我不够谨慎).这里有人知道怎么做吗?或者只是给出一些关于它的想法/例子.谢谢!

python web-crawler scrapy

11
推荐指数
1
解决办法
5378
查看次数

如何在Visual Studio中转储或搜索所有线程的调用堆栈

如何在Visual Studio中转储或搜索所有线程的调用堆栈?我们有一个服务器进程要调试,它有数百个线程在运行,因此应该很难手动检查每个线程.

我知道gdb中的"thread apply"可以做这种事情.所以我想知道visual studio的调试器中有类似的东西.

我也在使用visual studio 2005,所以请为VS 2005提供解决方案(在VS 2010中提供所有调用堆栈中的搜索...).

debugging multithreading callstack visual-studio-2005

11
推荐指数
2
解决办法
4871
查看次数

如何在没有重建的情况下在Linux平台上分析程序?

我已经使用了两个分析工具(Solaris上的VTune和Solaris上的dbx(在sunstudio中)),它可以在不重建它们的情况下对程序进行分析,在分析过程中,程序只能以与正常相同的速度运行.这两个功能都为我节省了很多时间.

现在我想知道Linux平台上是否有一些免费工具可以做同样的事情.我想我需要基于抽样的分析工具.VTune很好但价格昂贵......我听说过gprof和valgrind.但似乎gprof需要对程序进行检测(因此我们必须重建程序)并且valgrind将会大大减慢程序执行速度.(来自valgrind的介绍,Cachegrind运行程序比正常情况慢20到100倍,而我需要分析的Callgrind基于Cachegrind)

对于分析,我只需要弄清楚函数调用的执行时间,这样我就可以找出性能下降的位置.实际上我不需要很多低级分析信息,因为Cachegrind提供了......

linux profiling valgrind

8
推荐指数
1
解决办法
1764
查看次数

Web爬网程序更新策略

我想从某些网站抓取有用的资源(如背景图片..).这不是一项艰苦的工作,特别是在一些精彩的项目如scrapy的帮助下.

这里的问题是我不仅想要一次抓取这个网站.我还想让我的爬网长时间运行并抓取更新的资源.所以我想知道网络爬虫是否有任何好的策略来获取更新的页面?

这是我想到的粗略算法.我将抓取过程分为几轮.每轮URL存储库将为爬网程序提供一定数量(如10000)的URL进行爬网.然后是下一轮.详细步骤如下:

  1. crawler将起始URL添加到URL存储库
  2. crawler要求URL存储库最多抓取N个URL
  3. crawler获取URL,并更新URL存储库中的某些信息,如页面内容,获取时间以及内容是否已更改.
  4. 回到第2步

为了进一步说明,我仍然需要解决以下问题:如何确定网页的"刷新",这表明此网页已更新的概率?

由于这是一个悬而未决的问题,希望它会在这里带来一些富有成果的讨论.

web-crawler scrapy

4
推荐指数
1
解决办法
2339
查看次数