我目前正在创建一个将遍历多个 URL 的应用程序,它会下拉源代码,然后使用元素 ID 等参考点提取特定数据。
源代码被加载到 String 对象中,然后通过查找 IndexOf 参考点并执行 SubString 进行处理。
问题是 String 对象是垃圾收集中的第 2 代,这意味着它在被收集之前会在内存中停留一段时间。这意味着在访问越来越多的 URL 后,应用程序的内存使用量会继续增长。
我运行了该应用程序并处理了 25 个 URL,内存使用量跃升至 300Mb,一段时间后 - 我假设在垃圾收集启动后 - 内存使用量回落到 1Mb。
所以既然我只需要很短的时间来提取数据,有没有更优化的方法呢?
请注意,我无法分块读取源代码,因为分离可能会在参考点的中途发生。
IE
...<a href="http://www.some-website.com/" id="link-I-need">Hyperlink</a>...
可以这样分开
...<a href="http://www.some-website.com/" id="link-] (End of first chunk) - (Start of second chunk) [I-need">Hyperlink</a>...