01 2010 档案
摘要:本文简单介绍了显示DWFx文档的WPF DocumentViewer控件, 介绍了XPS Packaging类库的组织和几个重要的类, 揭示了从DWFx到XAML的转换过程中, 针对于自动化的系统需求, 所需要的数据和转换. 最后提供了一个DWFx 解包, 转换的类库, 并且提供了一个简单的演示程序.
阅读全文
摘要: 上一篇文章简单介绍了DWG格式的历史, 现状, 以及互操作的选择. 在本篇中,详尽的分析了XPS规范的框架,内容,组织结构, DWFx文件的特有数据和结构, 以及从DWG文件转换为DWFx文件的步骤和应该注意的问题.
阅读全文
摘要:本文作为本系列的第一篇, 以时间为轴, 浅析了AutoDesk公司的AutoCAD软件的主力格式DWG, 在历史上的发展, 现状, 以及向其他格式转化的途径及可能.
阅读全文
摘要: 最近在看Dictionary的源代码的时候, 突然想到Dictionary的不当使用中有一种隐含内存泄漏的可能. Dictionary的.NET实现有一个隐含的特性比较容易让人忽略, 那就是它对于存储数据的定位方式. Dictionary是通过对键的哈希值进行散列计算, 从而确定其对应的值存放的位置. 而Dictionary内部的添加/删除/修改操作, 都完全地依赖于这一定位方式. 这个定位方式, 在Dictionary源代码中体现为FindEntry()操作.
阅读全文
摘要:在不常见的情况下, 我们往往需要在团队项目之间迁移更改.在推荐的情况下, 同一个codebase的所有不同版本或者branch的源代码要放在同一个团队项目下, 这样方便源代码的分支/合并操作, 也同样方便工作项和代码更改集的关联. 但是, 在某些公司特定策略也可能是历史遗留策略的要求下, 在TFS上, 往往带来不好的实践. 比如, 给某些特定版本的源代码创建单独的团队项目来管理, 使TFS本身的合并分支操作难于在Team Projects之间进行, 必须特别注意创建项目时候的选项. 那么如何在独立的团队项目之间迁移更改呢?
阅读全文
摘要:在某些场景下, 对于内存数据结构, 当需要用多个键值来唯一确定一个值的时候, 我们经常会面临这样一个选择:
* 组合键: 将多个键组合成一个组合键, 在一个词典中存储和定位数据;
* 多级词典: 使用多级词典, 在多级词典中依次保存键-词典的键值对, 定位数据时由键依次确定下一级词典, 最终确定所在的数据;
抛开内存数据的空间效率不谈, 以上这两类做法的主要时间效率影响在于:
* 使用多级词典可以降低散列冲突及计算的时间消耗, 由于人为地添加了数据的分类, 数据散列的冲突概率也被大大降低.
* 使用多级词典在创建子Dictionary的时候带来额外的时间消耗,
* 使用多级词典可能会影响散列的数据均匀度, 这方面的影响类似于桶算法中的均匀度. 不均匀的桶长度会降低散列的效率.
* 使用组合键时所采用的组合键生成算法的生成效率和算法对散列值分布的影响.
* 在线程安全的要求对性能的影响. 在加锁的情况下, 锁的申请和释放对时间性能也有比较大的影响.
那么, 综合这些因素, 最终哪种做法会有比较好的性
阅读全文