microsoft mobile 移动应用开发宝典----读书笔记(5)

 1.开发常识
性能要求:最低----理想
优化代码
可感知的性能:可视化的进度反馈信息

2.CLR公共语言运行库
空间与时间的平衡
垃圾回收器(Garbage Collector GC)
负责为对象分配空间,并在对象不再被引用时释放他们。
托管环境编程----内存管理
Windows Embedded CE 6.0----进程数量和地址空间的限制
状况:内存不足时,发送WM_HIBERNATE消息,使应用程序处于非活动状态,释放不必要的资源。更甚至,在发送WM_CLOSE关闭应用程序,有必要还会调用TerminateProcess。
Windows CE 内存管理:Windows CE .NET Advanced Mermory Management(msdn2.microsoft.com/zh-cn/library/ms836325.aspx)
CLR内部机理及针对Windows CE的成本模型(cost model):Mike Zintel博客.Net Compact Framework Advanced Memory Management(blogs.msdn.com/mikezintel/archive/2004/12/08/278153.aspx)
堆heap
引用reference(句柄handle或指针pointer)
终结器方法(finalizer)----简单回收(simple collection)
归拢回收(compact collection)
完全回收(full collection)

实时编译器(JIT编译器或JITer:just-in-time):对应二进制文件(.exe或dll文件)和本地代码
中间语言(IL Intermediate Language)
代码丢弃(code pitching)
1)内联
方法内联(method inlining)
主调方法(calling method)
2)虚方法(virtual method)

3..NET Compact Framework性能统计表
远程性能监视器(Remote Performance Moniter,RPM)
1)注册表中激活:具体方法(略)
2)查看数据.stat文件
3)描述:"越是精练的代码,越是快速的代码"
.NET Compact Framwork中的性能计数器msdn2.microsoft.com/zh-cn/library/ms172525.aspx
加载程序
泛型    Roman Batoukov博客 blogs.msdn.com/romanbat/archive/2005/01/06/348114.aspx
锁与线程
    Threads In Thread Pool(线程池中的线程)默认为25
    Work Item Queued(排队的工作项)
    Contested Monitor.Enter Calls(争用Monitor.Enter调用)
垃圾回收
    GC Latency Time(GC滞后时间)
    Garbage Collection(GC)(垃圾回收【GC】)
    GC Compactions(GC 归拢)
    Code Pitchings(代码丢弃)
    Boxed Value Types(已装箱的值类型)
    Objects Finalized(被终结的对象)
    Managed String Objexts All ocated(已分配的字符串对象)
另注:装箱(boxing)拆箱(unboxing)
      终结器日志(finalizer log)
      Dispose方法:Implementing a Dispose Method:msdn2.microsoft.com/zh-cn/library/fs2xkftw.aspx
内存
    JIT Heap (JIT 堆)
    GC Heap(GC堆)
JIT
    Pitched(丢弃)
异常
互操作
网络
Windows.Forms
4)远程性能监视器
文件名NetCFRPM.exe
作用:更改控制日志和性能计数器的注册表值
      收集性能统计数据
步骤
(1)连接设备
将开发计算机的Nercfrtl.dll和Netcflaunch.exe复制到设备的Windows文件夹
第一次在设备上运行rpm,接受安全提示
通过ActiveSync使用Rapiconfig进一步来配置设备,(略)
(2)计数器的实时采集
(3)使用PerfMon

4.以编码方式检测性能
Stopwatch实现:Daniel Moth博客www.danielmoth.com/Blog/2004/12/stopwatch.html
测试代码---考虑很多因素---记录时间

5.性能指导
对比优化之前的测试和优化后的测试结果
性能建议msdn2.microsoft.com/en-us/library/ms998530.aspx
窍门
1)启动的加速
窗体布局代码方法:SuspendLayout/ResumeLayout和ReginUpdate/EndUpdate
利用双缓冲(double buffering)技术来防止闪烁
全局程序集缓存(GAC)
2)字符串、XML与数据
System.Text.StringBuilder
System.Xml.XmlDocument
3)数学运算
可登记处理(enregistration)条件:32位数
XNA Framework是游戏开发的托管代码集合
4)反射(reflection)
反射避免(reflection-avoidance)技术
5)集合(collection)
6)重载System.Object的方法

思绪:测试,是否有性能问题--有,优化方案,应用技巧--修改后,对性能测试,有用则留下
目标:及时响应、运行高效、合理使用资源

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章