低效的SelectSingleNode和高效的ListView数据添加
来源:互联网 发布:淘宝客服售后技巧话术 编辑:程序博客网 时间:2024/04/29 04:01
以下是Santomania带给我们的一些提高代码性能的建议,在他的博客网站上,你能看到不少他关于SharePoint的见解。
一、低效的SelectSingleNode
我最近一直在使用reflecting,然而我确实已经通过Lamont Harrington对此做了提示,虽然对我来说这并不是一个新闻(一般说来,在木桶中,我不会是最慢的鱼^_^),但我发现它仍然值得一提。
反编译XmlNode.SelectSingleNode方法,你将获得如下结果(原谅我的VB.Net):
Public Overloads Function SelectSingleNode(ByVal xpath As String) As XmlNode
Begin Function
Dim list1 As XmlNodeList
Dim node1 As XmlNode
Try
list1 = Me.SelectNodes(xpath)
node1 = list1.ItemOf(0)
Catch ArgumentOutOfRangeException
node1 = Nothing
End Try
Return node1
End Function
你将会看到,SelectSingleNode仅仅是SelectNodes的包装,这意味着它(最快)不会比SelectNode更快,并且,如果你在深入研究一点,SelectNodes反编译后如下:
Public Overloads Function SelectNodes(ByVal xpath As String) As XmlNodeList
Begin Function
im navigator1 As XPathNavigator
navigator1 = Me.CreateNavigator
Return New XPathNodeList(navigator1.Select(xpath))
End Function
让人感到沮丧痛苦的是:SelectNodes确实是创造了一个XPathNavigator实例!!
我想,首选的解决方案是:实例化我们自己的XPathNavigator并且在对xml文档执行XPath查询的时候重复使用它,特别是我们执行嵌套循环的查询时。
怎样促进你的ListView的性能?不要使用在同一个的循环中去创造和添加ListViewItem的方法。更好的方法是:创造一个ListViewItem的集合,并且使用AddRange方法去添加它们。我显示这个方法对团队中的一个开发者,在大量目录添加的情况下(超过1500条记录),他的ListView的性能比原来要高效1000倍。
最后,不知你注意到了没有,DictionaryEntry不是一个类,而是一个结构。
- 低效的SelectSingleNode和高效的ListView数据添加
- 一个高效的程序员和一个低效的程序员
- map的两种遍历(低效/高效)
- SelectSingleNode和SelectNodes的区别
- 斐波那契数列的低效与高效解法
- 【高效会议】纠音活动低效的解决办法
- 软件低效的根源
- 拒绝低效的提问
- 动态的向ListView中添加数据
- ListView添加无数据显示的文本
- 定位消耗资源较大和性能低效的sql
- 秒杀场景下MySQL的低效原因和改进
- PLSQL_低效SQL的识别和查询汇总(案例)
- 秒杀场景下MySQL的低效原因和改进
- xml中selectSingleNode的用法
- 低效的CMMI周例会
- 识别低效的SQL语句
- 低效的“WHERE1=1”
- 北京09年住房建设计划公布 新建保障房850万平
- gbk, gb2312,big5,unicode,utf-8,utf-16的区别
- 水晶报表的5种表格设计模式
- 在熟悉的环境中制作报表
- 唐骏经典语录
- 低效的SelectSingleNode和高效的ListView数据添加
- 详细讲解学习ASP Server对象使用方法
- request对象的使用方法
- ASP.NET Pre-Compilation and Keep-Alive
- .NET自动服务程序—C#(一)
- Sql注入SA权限CMD终结者C源码
- 利用C#进行AutoCAD的二次开发(三)
- Sharepoint 中的 Column Type的含义
- 牛根生的交际之道