- using System;using System.Threading;using System.Collections.Generic;using System.Diagnostics;namesp...
- 关于要不要实现析构函数, 其实是在性能和高保证性之间的一个平衡. 我个人不太赞同一般类里面实现析构函数.
- 应用场景存在. 我的意思是, 用缓存的 IL Emit的方式, 在有些场景下不如Activator(实际上我觉得大部分场景下), 毕竟它需要对象的数量越多越好来平均创建动态方法带来的Overhead. 想想吧, 什么系统需要同一种类的数十万个对象?
所以我说这片文章说明性能可以, 但是如果不说清楚, 恐怕误导更狠.
所有想说的说完了. 楼主考虑.... - 引用:“风云:
@Jeffrey Sun
DefaultDynamicMethodFactory.cs
DynamicMethodFactory.cs
上面是Emit源代码,Jeffrey Sun,看来你是想打破砂锅问到底呀,呵呵 ”
看了代码, ConstructorHandler用了ExpressionTree, 确实是Emit了. 不过静态成本依然存在啊, 建议lz注明一下. - egate(typeof(Func<Object>)) as Func<Object>;
var obj = creator(); ... - 不是没有创建成本, 单次调用成本是一样的, 只是这个成本没有被你的CodeTimer记录下来. 静态成员初始化同样需要时间的. 另外此处最好使用Lazy Initialization的方式初始化Cache, 尤其是当这个功能类库, 可能会被第三方使用的情况下.
- 这个误导更狠. 第5种方法里面的静态创建成本没有计算呀, 这个成本大概和12,786ms差不多(或者这个值的十分之一, 根据楼主说明)
[code=csharp]
static readonly ConstructorHandler Ctor = typeof(TestEntity).GetConstructor(Type.EmptyTypes).GetCreator();
[/code]
不抬杠, 但是楼主应该在结果里面明确说明这一点, 而不是简单的写一个7ms.
楼主觉得呢? - 楼主的概述太搞笑了...难道写完没自己看一下?
- @铃兰草
a和b保存在stack, 不占用堆空间. 另外其实链式API和对象模型一点关系都没有, 就是写的比较顺畅.
真要说好处, 说得悬一点, 就是使编程表达上更接近自然语言. - 话糙理不糙.WPF有适合自己的方式. 在code-behind直接操做binding, 要么是极其牛掰的人觉得binding不能满足自己, 要么是对一些可用模式没有了解深入.
- 惯来批判WPF. 其实这只是方式和选择上的区别, 不喜欢可以像你第二篇一样去改得让自己喜欢, 这都没什么.
怕只怕让后来人觉得这就是标准最佳实践, 其实这就是谬误了. 只是实践选择问题. 楼主的第二篇仔细拜读了, 不是特别赞同.
... - 令人期待的Prism V4 经历了10个Drop以后, 终于在上周五(北京时间周六)正式发布了. 看起来这个版本最重要的更新是引入了MEF从而支持选择Unity或者MEF构建UI注入构架的基础. 下文...
- 小议关于文件流Seek以及Read操作的一点不满以及对设计的讨论, 暨回应园中近来之C#语言之争。
- 现在首页什么文章都上....搞得偶尔的好文章都被冲走了
- 又放续集了. 放首页, 各位娱乐放松一下, 哈哈. 下班撤.
- 针对.NET 4.0中新的线程池和平行任务库, 本文针对于原来线程池的缺点不足, 总结介绍了任务中间的三中关系: 父子, 次序, 重叠, 并解释了平行任务库和线程池对于这些关系的处理。
- 没有,,中文版一般要滞后2到3个月
- 在win7上暂时没问题.
- 据国外媒体报道,微软公司将于4月13日正式发布Silverlight 4,进一步加强Web开发和桌面程序开发间的联系。Silverlight 是一个跨浏览器、跨客户平台的技术,能够设计、开发和发布有多...
- 把两句诗拧在一起, 实在是体现对VS2010复杂的感觉. VS2010要发布了, 但是别高兴地太早.
- 不要让不必要的源代码编译和生成时间耗费你的生命!!!
- 代码在真正进入代码仓库之前, 应该有机会通过一种和已有代码合并的集成性生成验证过程, 如果验证过程失败则拒绝签入. 有些源代码控制和生成平台提供了这样的选择. 但是TFS没有这样的功能. TFS的服务...
- 重写团队基础生成流程, 是团队基础最富于弹性和扩展能力的地方, 也是实践最多优劣各异的地方. 这是MSBuild引擎的优秀能力: 给MSBuild引擎提供任意一个格式正确的生成脚本, MSBuild引...
- 微软真的偷懒了 - 在上一节讨论中已经提到, 我们希望每次生成所使用的生成号(BuildNumber)和附加在程序集上的版本标记一致.这样才能在程序集版本信息和特定的生成过程之间建立起联系. 本质上是...
- TFS 2008作为一个成熟团队日常管理应用平台, 现在已经被很多团队所采用. 与之相关的自动化构建流程, 也日益成熟. 但是, 笔者还是会经常看到一些比较拙劣的实现, 或者"拆东墙补西墙"的做法. ...
- 本文关注自动化构建实践中的第一个问题, 程序集的版本信息标记. 我们是否应该在自动化构建过程中更新程序集版本信息? 这样做有什么好处或者弱点? 有没有比较好的做法来解决这一问题? 相信在本文中给出了一...
- 本文分析了现下各架构CPU内存访问模型的原则及实现, 内存访问指令的重新排序, 及其对.NET框架的影响, 尤其是编写单例模型的过程中应该注意的问题. 另外, 在编程之余, 将本文作为一篇对CPU模型...
- Jeffrey Sun 发表博客:从DWG到XAML (III) – .NET中的 XPS Packaging类库及一个DWFx Packaging类库的实现 (源码) 2010-01-26 00:03本文简单介绍了显示DWFx文档的WPF DocumentViewer控件, 介绍了XPS Packaging类库的组织和几个重要的类, 揭示了从DWFx到XAML的转换过程中, 针对于自动化的系统需求...
- 上一篇文章简单介绍了DWG格式的历史, 现状, 以及互操作的选择. 在本篇中,详尽的分析了XPS规范的框架,内容,组织结构, DWFx文件的特有数据和结构, 以及从DWG文件转换为DWFx文...
- 本文作为本系列的第一篇, 以时间为轴, 浅析了AutoDesk公司的AutoCAD软件的主力格式DWG, 在历史上的发展, 现状, 以及向其他格式转化的途径及可能.










