我有一个使用XmlReader的进程。我已经做了很多工作来挤出最大的表现。到目前为止,我们已经从使用Reader而不是XmlDoc或DataSet.GetXml()中获得了巨大的收益。我们希望每秒能获得多次XML,并且我希望避免每次重新创建读取器的开销。我已经缓存了XmlReaderSettings,但无论如何要重用XmlReader还是每次都需要重新创建它?有没有办法重用XmlReader?
1
A
回答
4
可能通过使用一些技巧来重用XmlReader,但不应该这样做。它只用于一次性使用,所以它没有任何使用不同来源重新启动的方法。
试图重用它可能会比创建新的阅读器更多的工作。创建阅读器相当便宜,而且几乎不会成为性能问题。
2
这几乎肯定是浪费精力。 XML需要来自某个地方,即网卡上的文件。 I/O操作比实现读取器类所做的任何操作都慢几个数量级。
典型的陷阱是您运行一个测试程序来重复使用相同的数据来分析代码。这不是一个现实的测试,您将从缓存副本(例如文件系统缓存)检索XML。这是非常快的,它运行在巴士速度。这在生产机器中不会这样工作,数据几乎肯定还没有被缓存。例如它需要从磁盘读取。那是非常慢。
相关问题
- 1. 有没有办法重用Job实例?
- 2. 有没有办法防止重复?
- 3. 有没有办法在python中重载+ =?
- 4. 有没有办法避免方法调用重复?
- 5. 有没有办法强制调用重写的方法?
- 6. 有没有办法在NetBeans
- 7. 有没有办法“svn unrevert”?
- 8. 有没有办法-preload- UICollectionViewCell?
- 9. 有没有办法在Notepad ++
- 10. 有没有办法写unity3d
- 11. 有没有办法收集?
- 12. 有没有办法从APP
- 13. 有没有办法appendTo头?
- 14. 有没有办法在UIWebview
- 15. 的XmlReader:没有引号
- 16. 有没有办法重新定位/重置方向?
- 17. 有没有办法重新使用SVG文件?
- 18. 有没有什么办法重用java中的arraylist?
- 19. 有没有办法在循环中重新使用Formatter对象?
- 20. 有没有办法用withReader重新打开输入流? - Groovy的
- 21. 有没有办法用Vim自动重新设置大括号?
- 22. Sql Server Mgmt Studio:有没有办法让它重用Windows?
- 23. 有没有办法在tbl中使用重塑?
- 24. 有没有办法使用htaccess重写URL的一部分?
- 25. 有没有办法用koa重命名上传图像?
- 26. 有没有办法使用Twisted重新发送UDP数据包?
- 27. 有没有办法重用fmt.Printf中的参数?
- 28. XSL - 有没有办法让这个模板可以重用?
- 29. 有没有办法使用JavaScript手动重置onchange事件?
- 30. 有没有办法禁用标签?
它相对便宜。但我已经做了所有其他事情,所以我正在尝试刮胡子,因为这是现在的瓶颈。不是表现是一个问题,但我内心的极客想在可能的情况下刮脸。虽然不成熟的优化是万恶之源;但我无法帮助它 – uriDium 2010-04-07 09:28:01