我正在研究一个网络爬虫(请不要建议现有的,它不是一个选项)。 我的工作方式是预期的。我唯一的问题是,目前我正在使用一种服务器/客户端模式,服务器执行爬取并处理数据,然后将其放置在中央位置。基于java光盘的哈希映射
此位置是从我写的类创建的对象。在内部,类维护定义一个HashMap为HashMap<String, HashMap<String, String>>
我存储的数据在地图制作的URL键(我把这些独特的)和hasmap价值储存该URL对应的数据字段,如标题,价值等
我偶尔会序列化使用的内部对象,但蜘蛛是多线程的,只要我说5个线程爬取内存需求呈指数级增长。
到目前为止,散列表的表现非常出色,在2.r分钟内抓取15K urls,大约30秒CPU时间,所以我真的不需要像大多数论坛那样指向现有蜘蛛的方向用户建议。
任何人都可以提出一个基于快盘解决方案,可能会支持并发读取&写?数据结构不必须是相同的,只是需要能够提前
感谢
为什么会呈指数形式? – 2010-07-23 09:30:42
因为我对它进行了彻底测试,并且只在线程爬行量增加时记录了内存使用情况和CPU时间。有一些奇怪的测试在外面,并没有真正符合其他测试显示的相关性,但他们只是被视为极端值,并忽略了当我绘制,可能不是一些专业测试,但它足够我的目的。 – zcourts 2010-07-24 13:32:47