惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Webroot Blog
Webroot Blog
U
Unit 42
A
About on SuperTechFans
宝玉的分享
宝玉的分享
月光博客
月光博客
C
CERT Recently Published Vulnerability Notes
P
Privacy International News Feed
Microsoft Security Blog
Microsoft Security Blog
G
Google Developers Blog
P
Privacy & Cybersecurity Law Blog
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
S
Securelist
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
Spread Privacy
Spread Privacy
L
Lohrmann on Cybersecurity
Apple Machine Learning Research
Apple Machine Learning Research
K
Kaspersky official blog
Hugging Face - Blog
Hugging Face - Blog
B
Blog
I
Intezer
Last Week in AI
Last Week in AI
T
Threat Research - Cisco Blogs
V
V2EX
L
LangChain Blog
AI
AI
G
GRAHAM CLULEY
T
Tor Project blog
人人都是产品经理
人人都是产品经理
D
Docker
WordPress大学
WordPress大学
Google DeepMind News
Google DeepMind News
I
InfoQ
Y
Y Combinator Blog
C
Comments on: Blog
GbyAI
GbyAI
www.infosecurity-magazine.com
www.infosecurity-magazine.com
酷 壳 – CoolShell
酷 壳 – CoolShell
T
Tailwind CSS Blog
aimingoo的专栏
aimingoo的专栏
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
腾讯CDC
N
News and Events Feed by Topic
MyScale Blog
MyScale Blog
H
Help Net Security
Vercel News
Vercel News
T
Tenable Blog
博客园 - 三生石上(FineUI控件)
爱范儿
爱范儿

博客园 - Jerry.liu

AspNetPager分页控件--使用方法 2 AspNetPager分页控件--使用方法 1 分析ASP.NET服务器控件开发-控件生命周期 用ObjectDataSource实现自定义分页的心得总结 ASP.NET的 Session 详解4 ASP.NET的 Session 详解3 ASP.NET的 Session 详解2 ASP.NET的 Session 详解1 ASP.NET的 MVC框架 全面优化ADO ADO.net学习纪录 (二) ADO.net学习记录 (一) 彻底放弃IIS让Apache也支持ASP.NET 如何实现Asp与Asp.Net共享Session Asp.net生成htm静态文件的两种途径 ASP.NET2.0的控件状态和视图状态探讨 2 - Jerry.liu ASP.NET2.0的控件状态和视图状态探讨 1 - Jerry.liu 压力监测程序sqlserver和MYSQL版 PetShop数据访问层之数据库访问设计
DataTable操作中的性能问题
Jerry.liu · 2007-05-28 · via 博客园 - Jerry.liu

最近的一项工作是关于性能提升方面的。要做的第一个事情是要把很多同类型的DataTable合并到一起,查了很多关于DataTable的相关函数以后,我决定用Merge函数来合并这些DataTable。
   DataTable[] srcTables = ... ;
   foreach( DataTable src in srcTables )
   {
   dest.Merge( src ) ;
   }
   但是测试的结果让我很是失望,性能不是一般的不好。经过调查发现性能的瓶颈在Merge函数这里。后来经过测试,发现如果用下面的代码:
   DataTable[] srcTables = ... ;
   foreach( DataTable src in srcTables )
   {
   foreach( DataRow row in src.Rows)
   {
   dest.ImportRow( row ) ;
   }
   }
  
   结果让人惊奇的是,下面的代面的速度是上面的代码速度的100倍!
  
   还做了一个事情,就是对DataTable进行filter的时候 ,我的一个同事和我说了以下的代码:
   DataView dv = dt.DefaultView ;
   dv.RowFilter = filter ;
   DataTable result = dv.ToTable() ;
   上面的代码是能工作的,但是它的性能一点都不好,后来我把上面的代码改成了:
   DataRow[] rows = dv.Select( filter ) ;
   foreach( DataRow row in rows )
   {
   result.ImportRow(row) ;
   }
  
   也有数十倍的性能提高。