我编写了一个 Java 应用程序,用户可以将其安装在桌面上。它抓取网站,将每个页面的数据存储在 LinkedList 中。该应用程序允许用户查看在 JTable 中抓取的所有页面。
这对小型站点非常有用,但扩展性不是很好。当前,用户必须为更大的爬网分配更多内存(在启动 Java 时转换为 -Xmx)。
我目前的想法是将所有数据存储在数据库中,可能使用 HSQLDB 之类的东西。
我应该考虑其他方法吗?
最佳答案
关系数据库不是存放网页数据的好地方。你能把页面保存在磁盘上吗?我想对爬网结果进行搜索。试试 apache lucene 搜索引擎。在内存中一次加载所有结果是不合理的。您可以对 JTable 模型进行分页,并在分页时使用软引用来缓存一些结果。
关于java - 将所有数据存储在内存中时的选项不缩放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9341099/