All articles| All Pictures| All Softwares| All Video| Go home page| Write articles| Upload pictures

Reading number is top 10 articles
PHP实例:用PHP实现XML备份Mysql数据库_[PHP教程]
新瓶旧酒ASP.NET,AJAX(6),-,客户端脚本编程(Sys.WebForms命名空间下的类)_[Asp.Net教程]
轻松掌握Ajax.net系列教程一:部署AJAX.NET_[Asp.Net教程]
数据库索引应用(ms-sql)_mssql学习_编程技术
(asp.net+Access)图片上传到数据库同时显示_[Asp.Net教程]
Asp.Net页面输出到EXCEL_[Asp.Net教程]
PHP函数:PHP的通用检测函数总结_[PHP教程]
sqlserver过滤字符串中的空格的自定义函数_[SQL,Server教程]
php获得网页文件跟路径_[PHP教程]
Visual C++向对话框类中添加工具栏
Reading number is top 10 pictures
Group of female porn in 《westwards》, uninhibited woman threatened to not the bottom line1
程序员的悲哀
The real super beauty5
美女
看如何给单纯的少女洗脑
The real super beauty7
Sora aoi on twitter4
Ashlynn Brooke a group sexy photo1
Extremely rare TianShan Mountains snow lotus2
Summer is most suitable for young people to travel in China10
Download software ranking
linux初级教程
Ashlynn Video4
虚拟机5.5.3版
豪门浪荡史
艳兽都市
Unix video tutorial1
Detective task-the top secret prostitution files
Tram sex maniac 2 (H) rar bag3
塘西风月痕
Professional killers2 data package
aaa published in(发表于) 2013/12/13 9:43:20 Edit(编辑)
如何最大限度提高.NET的性能,(续)_.net资料_编程技术

如何最大限度提高.NET的性能,(续)_.net资料_编程技术

如何最大限度提高.NET的性能 (续)_.net资料_编程技术-你的首页-uuhomepage.com

昨天发了一篇如何最大限度提高.NET性能的文章,评论的人不少,在这里非常感谢大家的评论,其中有些是指出文章的一些错误的,在这里感谢那些耐心写评论的老大们,小弟受益不少。

昨天那篇主要是从写代码的一些细节上来提高速度,可能很些是难实际感受到性能的提高,但是作为一名程序员,不断提高自己代码的质量是不断追求的目标。

其实随着硬件的发展,现在硬件的速度已经远远满足大多数人的的需要了,甚至有些人提出算法在现在软件开发中越来越不起作用了。记得以前看过麻省的数据结构视频,讲课的教授就问过一个问题(我记得不大清楚了,他的大概意思就是这样):既然算法现在变得不重要了,为什么我们还要在这里研究呢?他给的答案就是“SPEED” ,我们追求速度就像赛车手追求速度一样!

现在很多系统的开发都不会把速度放在第一位,其他如:稳定性,安全性,可重用性等往往最优先考虑的。现在设计模式,开发架构等主要都不是为了解决性能问题的。以上这些都是分析师,架构师考虑的,像我们一些小小的程序员就只能在代码的一些小地方,一个类,一个方法,一行代码上面来优化程序。我觉得多注意一些细节上的东西还是很好的。

好了废话说了一大堆,现在来说说今天的主题,现在开发的很多网络系统性能开销主要是在数据的读取,传输上,更快的读取速度,更少的网络宽带占用是我们追求的目标。我就从这方面来谈谈如何提高.net的性能。

1. 在数据层分页数据。可以通过ExcuteReader或者存储过程实现,方法很多,我就不多说了.(可以看看我写的 )


2. 尽量使用ExcuteReader来读取数据,ExcuteReader是效率最高的,在MicroSoft的PetShop 4.0全部数据访问都是用ExcuteReader来实现的,除非你对非连接有特殊要求(如 SmartClient智能客户端等)。


3. 在非连接场合,用DataTable比用DataSet性能好,除非你要保存多个关系表。


4. 使用DataTable的ImportRow方法。
有些场合需要把大量数据从一个DataTable复制到另一个DataTable,使用DataTable的ImportRow方法可以大大提高性能,数据量少时没多大分别,当数据量到一万行以上时就可以明显的提高,可以达到几倍。


5. 把数据序列化为二进制文件方便传输。
我们在处理DataSet,DataTable对象时可以序列化为XML文件,如果要在网络传输,XML文件会产生内存,网络带宽等资源问题。这时我们就可以把它序列化为二进制文件,这样生成的文件会减少很多,代码如下:
FileStream fs = new fileStream(@"XMLData.bin",FileMode.Create);
BinaryFormatter bf = new BinaryFormatter();
bf.Serialize(fs,XMLData);
fs.colse();
这样生成的二进制文件称为XMLBinary,用WINHEX直接打开还可以看到一些XML标记在里面,如果数据量很大,这时加一行代码:
XMLData.RemortingFormat = SerializationFormat.Binary;
这时生成的文件称为TrueBinary文件,当处理大量(超过10000行)时生成的文件尺寸是XMLBinary的几分之一。序列化的时候会自动保存模式,这样解序过程很简单。我还不知道解序比直接读取XML性能会下降多少。

6. 合理利用连接池。
连接池对性能的提高有很大的作用,默认是打开的。默认的Min Pool Size是0,一般设为一个比较小的值,如5。Max Pool Size默认是100,大多数WEB站点也够用,大型的适当增大。


7. 使用SQLCLR开发
如果你是专注开SQL Server系列那你应该去研究一下SQLCLR,它的功能非常强大,在很多场合都可以提高性能(特别是大型企业级应用)。


8. 通过静态类来访问APP.Config/Web.Config
我们有很多配置信息都是放在APP.Config/Web.Config,访问都会很频繁,这时建立一个静态类,所有的属性都通过静态类来访问,可以在一定程度提高性能,静态类只实例化一次,而APP.Config/Web.Config会产生很多IO操作。
public static class MyWebConfig
{

static MyWebConfig()
{
ConnString =
ConfigurationManager.ConnectionStrings["Connection"].
ConnectionString;

}

public static string DbConnectionString
{
get
{
return ConnString;
}
}
}


好了 今天就写到这里, 有什么错误和不足的地方希望指出,欢迎提出更好的意见,共同进步。






添加到del.icio.us 添加到新浪ViVi 添加到百度搜藏 添加到POCO网摘 添加到天天网摘365Key 添加到和讯网摘 添加到天极网摘 添加到黑米书签 添加到QQ书签 添加到雅虎收藏 添加到奇客发现 diigo it 添加到饭否 添加到飞豆订阅 添加到抓虾收藏 添加到鲜果订阅 digg it 貼到funP 添加到有道阅读 Live Favorites 添加到Newsvine 打印本页 用Email发送本页 在Facebook上分享


Disclaimer Privacy Policy About us Site Map

If you have any requirements, please contact webmaster。(如果有什么要求,请联系站长)
Copyright ©2011-
uuhomepage.com, Inc. All rights reserved.