java 下载(大量)图片慢

nai598455803 2015-04-23 04:51:40
现有需求,从数据库取id, 用id 取网上爬 图片,并下载到本地, 之后在修改数据库的一个字段。

现代码1天只能下载不到1W张

请问,怎么做才能快一点,有没有什么好办法?
...全文
672 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaohuashenshou 2015-04-28
  • 打赏
  • 举报
回复
引用 5 楼 t_jl1979 的回复:
[quote=引用 3 楼 nai598455803 的回复:] [quote=引用 2 楼 xiaohuashenshou 的回复:] 如果确实是因为网络速度太慢,那就没办法了,如果不是,可以采用多线程的方式进行下载,但是多线程的个数要根据你服务器的cpu的性能来定,如果是建议CPU的核数乘以2
嗯,除了多线程还有没有别的方法了,用了多线程了,感觉还是有点慢。[/quote] 增加线程数,直到性能不再提升为止。[/quote]线程不是越多越好的,太多了你的CPU无法转换时间切片去处理的话一样是没用的,建议楼主使用线程池,根据C PU的性能创建一定量的核心线程,然后将你所说的9万张图片进行分组,比如启动了8个线程,可以分成8个组,每个线程执行一组
nai598455803 2015-04-24
  • 打赏
  • 举报
回复
引用 4 楼 u013762572 的回复:
开源中国中有个开源项目,关于网页爬虫的,使用的就是多线程做的,效率蛮高的,有兴趣可以下载看一下,希望能帮到你。。。
有网址吗
冥王之锤 2015-04-23
  • 打赏
  • 举报
回复
引用 3 楼 nai598455803 的回复:
[quote=引用 2 楼 xiaohuashenshou 的回复:] 如果确实是因为网络速度太慢,那就没办法了,如果不是,可以采用多线程的方式进行下载,但是多线程的个数要根据你服务器的cpu的性能来定,如果是建议CPU的核数乘以2
嗯,除了多线程还有没有别的方法了,用了多线程了,感觉还是有点慢。[/quote] 增加线程数,直到性能不再提升为止。
microhex 2015-04-23
  • 打赏
  • 举报
回复
开源中国中有个开源项目,关于网页爬虫的,使用的就是多线程做的,效率蛮高的,有兴趣可以下载看一下,希望能帮到你。。。
nai598455803 2015-04-23
  • 打赏
  • 举报
回复
引用 2 楼 xiaohuashenshou 的回复:
如果确实是因为网络速度太慢,那就没办法了,如果不是,可以采用多线程的方式进行下载,但是多线程的个数要根据你服务器的cpu的性能来定,如果是建议CPU的核数乘以2
嗯,除了多线程还有没有别的方法了,用了多线程了,感觉还是有点慢。
xiaohuashenshou 2015-04-23
  • 打赏
  • 举报
回复
如果确实是因为网络速度太慢,那就没办法了,如果不是,可以采用多线程的方式进行下载,但是多线程的个数要根据你服务器的cpu的性能来定,如果是建议CPU的核数乘以2
nai598455803 2015-04-23
  • 打赏
  • 举报
回复
数据有9W 多条,图片能有10W多张。

81,090

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧