欢迎光临
我们一直在努力

低效的SelectSingleNode和高效的ListView数据添加-.NET教程,组件控件开发

建站超值云服务器,限时71元/月

以下是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数据添加

怎样促进你的listview的性能?不要使用在同一个的循环中去创造和添加listviewitem的方法。更好的方法是:创造一个listviewitem的集合,并且使用addrange方法去添加它们。我显示这个方法对团队中的一个开发者,在大量目录添加的情况下(超过1500条记录),他的listview的性能比原来要高效1000倍。

最后,不知你注意到了没有,dictionaryentry不是一个类,而是一个结构。

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » 低效的SelectSingleNode和高效的ListView数据添加-.NET教程,组件控件开发
分享到: 更多 (0)

相关推荐

  • 暂无文章