在有的项目中,有这样的需求,由于显示器的显示区域是有限的,而软件却要展示一个远大于显示区域的一些元素,此时就要引入放大.缩小.拖动等UI控制技术,而在使用这些技术的同时,在后台有效的控制渲染元素的个数显得尤其重要. 假设这样的案例屏幕1366*768,软件全屏显示为1366×738,软件中显示地图用的区域为600×600,此时我们可以把这个600×600的区域定义为关注区域,后台程序在获取屏幕界面变更事件(如最大化.最小化.侧栏收缩\展开)后,重新计算这个600×600的四个顶点坐标值.当需渲染…
WPF性能优化一.Rendering Tier 1. 根据硬件配置的不同,WPF采用不同的Rendering Tier做渲染.下列情况请特别注意,因为在这些情况下,即使是处于Rendering Tier 2的情况下也不会硬件加速.(不全,其余请查阅SDK) Bitmap effects, Printed content, Tiled content that uses TileBrush, Layered windows. 下列情况为 Layered window: 1. WindowStyle…
WPF性能调试系列文章: WPF页面渲染优化:Application Timeline WPF页面业务加载优化:Ants Performance Profiler     WPF内存优化:Ants Memory Profiler 内存监测(Ants Memory Profiler) Ants Memory Profiler是专门针对于.net程序的内存动态分析工具,通过实时监测WPF程序中每个对象分配的内存空间大小,来提供多样式报告展示内存的使用情况.我们可根据分析结果进行指定对象的优化. 从R…
WPF性能调试系列文章: WPF页面渲染优化:Application Timeline WPF页面业务加载优化:Ants Performance Profiler WPF内存优化:Ants Memory Profiler Ants Performance Profiler Ant Performance Profiler是RedGate旗下强大的性能调优产品, 可以用于分析.NET Winform.webform以及Windows服务.使用在这里主要用来监测wpf 应用程序业务端执行所消耗的时间…
WPF性能调试系列文章: WPF页面渲染优化:Application Timeline WPF页面业务加载优化:Ants Performance Profiler WPF内存优化:Ants Memory Profiler 应用程序时间线(Application Timeline) 应用程序时间线工具是VS2015新添加的功能,通过对WPF程序的检测,可以分析应用程序消耗的时间包含用户界面框架.服务网络和磁盘请求.程序启动及页面加载.此处重点介绍程序加载和页面加载的时间性能分析. 模拟分析应用程序…
关于For与Foreach的区别,博客园里已经有好多这样文章了,都分析的挺好:http://www.cnblogs.com/jobs/archive/2004/07/17/25218.aspx  不过里面关于安全部分的描述可以略过. 以下是我的测试代码: using System; using System.Collections.Generic; using System.Collections; using System.Linq; using System.Text; using Syst…
关于性能 一.    关于硬件加速 1.对于大多数图形硬件而言,大型图面是指达到 2048x2048 或 4096x4096 像素大小的图面. 二.    合理的布局 1.简单地说,布局是一个递归系统,实现在屏幕上对元素进行大小调整.定位和绘制. 2.集合中的子级数目越多,所需的计算量就越大 3.使用简洁的布局面板,Grid 或 StackPanel 控件提供的功能比 Canvas 控件多很多. 功能大大提高的代价是性能成本也大大提高. 4.更新而不替换 RenderTransform. 5.从…
前一篇提到了SWT中的table的通过使用virtual table性能得到很大的改善,那么如果既存的工程中使用的是TableViewer来创建的表,也能改成virtual table吗? 答案是肯定的,而且改起来超级简单,只需要在创建TableViewer的时候,加一个SWT.VIRTUAL属性即可~~ 直接上示例代码: package swt.table; import org.eclipse.jface.viewers.ILabelProviderListener; import org.…
EF是个工具,用的好了性能就会很好,用的不好性能就会有很大损失. 先从EF的设计思想来讲解 EF的初衷是根据缓存中的实体对象,以及实体对象的状态(删除.更新.添加)来对数据库进行操作,这些实体对象.以及对象的状态都是在一个对象上下文ObjectContext中进行维护的,数据上下文DbContext显式实现了IObjectContextAdapter接口.DbContext在最后SaveChanges提交的时候,会调用ObjectContext的SaveChanges, 将所有更新保存到数据库并…
在SWT程序中使用table展示数据时,如果数据过多,执行起来会比较慢,不过,我们可以借助VirtualTable来解决这一问题. Eclipse官网中关于VirtualTable的说明见:http://www.eclipse.org/articles/Article-SWT-Virtual/Virtual-in-SWT.html 先来看一个不用VirtualTable的demo: import org.eclipse.swt.SWT; import org.eclipse.swt.widget…