11 2011 档案

CLR Via笔记之ThreadPool/Task
摘要:ThreadPool 是MTA设计,不像STA线程可以支持Com Interop互操作。而Task是ThreadPool的再封装简化,两者都支持异步取消的操作。ThreadPool 通过CancellationTokenSource 取消线程操作private static void CancellingAWorkItem() { CancellationTokenSource cts = new CancellationTokenSource(); ThreadPool.QueueUserWorkItem(o => Count(cts.Token, 1000))... 阅读全文

posted @ 2011-11-18 13:46 小城岁月 阅读(1700) 评论(1) 推荐(4) 编辑

CLR Via笔记之.NET 4.0 并行Parallel
摘要:4.0特性中扩展了并行任务处理,其实就是封装了ThreadPool的Task。园子里有很多介绍Parallel的并行计算,其实我更看好并行查询PLINQ。做过复杂SQL拼接报表的人应该深有体会,当复杂的SQL执行时间过长,你怎么做呢?当存储过程优化后的执行时间还是让人无法接受呢? 之前的解决方案是将复杂的SQL拆分成几段(可能是多张表)分别并行执行,将查询结果加载至内存,利用LINQ处理获取交集数据最终达到目的,当然这个是牺牲内存的方式达到目的,但是如果查询的数据短期不会有太大变化时,这种方式解决查询速度过慢肯定是个较好的方案。而PLINQ在此基础上又进一步扩大了LINQ战果。下面是PLIN. 阅读全文

posted @ 2011-11-16 11:56 小城岁月 阅读(934) 评论(1) 推荐(1) 编辑

.NET 序列化与反序化
摘要:序列化与反序化目的是为了解决对象的传递与持久化操作,如在不同的进程,应用程序哉,服务间传递,对象的保存与状态还原. .net 环境下提供的序列化方式至3.5版本,有二进制,SOAP,XML,DataContract,JavaScript等,开源的有如Json.net等。当然也有自己手动反射实现的,比如利用MemberInfo,或者FormatterServices (二进制,SOAP等方式是封装了FormatterServices 的操作)。以上的几中方式处理序列化的对象都有不同的要求,二进制,SOAP,XML方式要求对象必须属性标记可序列化[Serializable],而DataContra 阅读全文

posted @ 2011-11-13 01:34 小城岁月 阅读(1881) 评论(0) 推荐(3) 编辑

CLR VIA反射性能比较的例子
摘要:在CLR VIA 的Demo中看到关于反射性能的几个例子,演示了反射操作实例及性能表现。反射的过程其实就是根据要查找的反射信息(字段名,方法名,类名等),在元数据中逐字符匹配的查找字段名,类型名等,然后定位到IL代码编译执行(所以会有大小写区分)。由于元数据是记录了程序集所有类型以及成员的描述信息,所以在其中查找指定的信息是件浪费性能的事情。如何快速匹配到对应的元数据信息,然后定位到IL执行代码去执行,这是本身反射性能提升的直接途径,当然这个过程已经很难优化,但是可以通过缓存管理首次的结果提高效率。类似JIT对IL方法指令的编译,首次编译后保存CLR 元数据相关的结构表中,再下一次执行时直接上 阅读全文

posted @ 2011-11-12 02:15 小城岁月 阅读(952) 评论(2) 推荐(4) 编辑

进程/线程/线程安全/静态类 杂谈
摘要:进程 是应用程序的一个实例要使用的资源的一个集合,每个进程都被赋予了一个虚拟空间,以确保另一个其它进程无法访问。进程在者创建时需要分配大量的内存并且初始化加载EXE以及大量的DLL资源。线程相当于逻辑CPU用以解决进程长时间占用资源的问题,在创建时被分配大约1M的内存。线程以CPU时间片单位运行,当时间片到期后自动切换到另一个线程执行,从而缓解一个进程或线程长期占用资源的情况。线程切换伴随着上下文资源的切换,所以大量的线程切换也是浪费性能的事情。一个进程拥有一个专用线程,理论上有多少进程最少就有多少线程,当然实际情况上一个进程可能拥有很多线程。我们可以通过任务管理器的添加选项列线程数来查看一个 阅读全文

posted @ 2011-11-08 01:05 小城岁月 阅读(2551) 评论(1) 推荐(5) 编辑

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
面朝大海,春暖花开!
点击右上角即可分享
微信分享提示