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的方法

思緒:測試,是否有性能問題--有,優化方案,應用技巧--修改後,對性能測試,有用則留下
目標:及時響應、運行高效、合理使用資源

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