程序調(diào)試優(yōu)化和出錯處

程序調(diào)試優(yōu)化和出錯處

ID:27693763

大?。?89.01 KB

頁數(shù):13頁

時間:2018-12-03

程序調(diào)試優(yōu)化和出錯處_第1頁
程序調(diào)試優(yōu)化和出錯處_第2頁
程序調(diào)試優(yōu)化和出錯處_第3頁
程序調(diào)試優(yōu)化和出錯處_第4頁
程序調(diào)試優(yōu)化和出錯處_第5頁
資源描述:

《程序調(diào)試優(yōu)化和出錯處》由會員上傳分享,免費在線閱讀,更多相關內(nèi)容在教育資源-天天文庫。

1、第16章程序調(diào)試、優(yōu)化和出錯處理程序調(diào)試的重要性毋庸置疑,有時調(diào)試工作所占用的時間甚至遠超過程序設計、代碼編寫所用時間。MATLAB的程序調(diào)試功能強大,較之于VS、BC等更加簡潔、方便,具有更好的所見即所得特性,這些內(nèi)容將在第16.1節(jié)作詳細介紹。MATLAB程序是能夠完成指定功能的代碼集合,完成指定的功能當然是程序的重要目標之一,但往往還不是最重要的目標。在資源(時間、內(nèi)存及其他相關設備資源)有限的條件下,決定程序質(zhì)量好壞的標準往往是程序的性能,當然還包括程序界面等。程序的性能指標主要是指完成指定功能所需的時間和內(nèi)存。第16.2節(jié)中給出了一些MATLAB程序優(yōu)化應該遵循的原則及要注

2、意的事項,這些都可以在某種程度上提高MATLAB程序性能。另外本節(jié)還介紹了MATLAB的性能分析工具,利用該工具可以更客觀地度量程序的性能。16.1調(diào)試MATLAB是一種邊解釋邊執(zhí)行的程序語言,這為程序的調(diào)試提供了眾多的便利,尤其要強調(diào)的是其良好的所見即所得特性,更是VS、Eclipse等所不能比擬的。除了內(nèi)置的一系列調(diào)試函數(shù)之外,MATLAB還提供了專門的MATLAB調(diào)試器(即M文件編輯器),通過該調(diào)試器、結合調(diào)試函數(shù),用戶可以完成大部分的調(diào)試工作。本節(jié)首先介紹調(diào)試的基本任務,接著詳細討論調(diào)試函數(shù)、MATLAB調(diào)試器及其相關的調(diào)試技術,最后對MATLAB中的錯誤和警告及其相關的調(diào)試

3、技術進行了簡要介紹,它們在第16.3節(jié)出錯處理中有重要應用。16.1.1調(diào)試的基本任務程序調(diào)試的概念源于英文術語“Debug”,意為找到、去除程序中的“bug”(bug可以簡單地理解為錯誤)。對大部分程序,可能存在的bug可以大致分為如下三類。語法錯誤邏輯錯誤異常語法錯誤是由于程序員疏忽等原因而造成代碼違背程序語言規(guī)則,這是初學者經(jīng)常犯的一類錯誤。一般地,編譯器能夠找到大部分的語法錯誤,MATLAB編譯器更是如此,在某種程度上這是由于MATLAB語言較C++、Java等語法相對簡單的緣故。邏輯錯誤主要是由于程序員對問題求解的程序流程或程序語言本身特性認識有誤差而造成程序執(zhí)行結果(包括

4、中間結果)出現(xiàn)錯誤。一般來說,編譯器對這類錯誤無能為力,MATLAB編譯器也不例外。邏輯錯誤也是大部分程序調(diào)試的主要工作。16.1.2調(diào)試函數(shù)MATLAB內(nèi)置了一系列的調(diào)試函數(shù),用于程序執(zhí)行過程相關的顯示、執(zhí)行中斷、斷點設置、單步執(zhí)行操作等。通過在MATLAB命令窗口輸入以下指令:>>helpdebug用戶可以查詢到這些調(diào)試函數(shù),它們均以db開頭,Debug函數(shù)及其說明函數(shù)名功能dbstop設置斷點dbclear清除斷點dbcont重新執(zhí)行dbdown變更本地工作空間上下文dbmex使MEX文件調(diào)試有效dbstack列出函數(shù)調(diào)用關系dbstatus列出所有斷點dbstep單步或多步執(zhí)

5、行dbtype列印M文件(包括行號)dbup變更本地工作空間上下文dbquit退出調(diào)試模式16.1.3MATLAB調(diào)試器但前面利用MATLAB調(diào)試函數(shù)對MATLAB程序進行調(diào)試還有一些不足之處:不夠簡便,需要輸入過多的調(diào)試代碼;不夠直觀;對具有多重函數(shù)調(diào)用的大型程序不使適用。用戶也許希望擁有像VS類似的、具有圖形用戶界面的調(diào)試器,為此MATLAB提供了專門的MATLAB程序調(diào)試器,該調(diào)試器很好集成在M文件編輯器之中,具有良好的所見即所得特性,操作控制簡單方便,功能強大,下面將為用戶詳細介紹其特性及使用方法。MATLAB調(diào)試器集成在文件編輯器的調(diào)試工具欄,包括7個調(diào)試按鈕和一個空間堆棧

6、下拉框,16.1.4警告和錯誤MATLAB程序在執(zhí)行過程中若遇到語法錯誤或異常,則會拋出錯誤或警告。錯誤和警告信息中包含了錯誤和警告發(fā)生的代碼行行號,由此可以迅速地找到MATLAB程序中的語法錯誤或異常,下面通過一個簡單的例子說明警告、錯誤相關的除錯技術。16.2性能優(yōu)化廣義上來說,程序性能的范疇不僅包括程序的時間效率(即執(zhí)行效率)和空間效率(主要指內(nèi)存使用效率),還涉及程序的穩(wěn)定性、可靠性、適應性等多種指標。但本節(jié)僅討論狹義的程序性能,即程序的執(zhí)行效率和內(nèi)存使用效率,及相關的性能優(yōu)化技術。從理論上分析程序的性能不是本節(jié)所要討論的內(nèi)容,這里首先介紹MATLAB的程序性能分析工具Pro

7、filer,用以衡量程序的性能,并在后續(xù)的內(nèi)容中驗證相關性能優(yōu)化技術的效果;隨后的兩節(jié)分別討論執(zhí)行效率優(yōu)化和內(nèi)存優(yōu)化相關的技術。16.2.1性能分析查找程序性能瓶頸是提升程序性能的第一步。MATLAB提供的碼表(stopwatch)能夠給出指定代碼運行的時間,通過比較不同代碼的運行時間,用戶可以粗略分析程序的性能。下面是碼表的一個簡單使用示例,通過該例子可以很容易地理解碼表的使用方法。16.2.2效率優(yōu)化技術一般地,用戶在初次編寫代碼時,不需要過多地考慮效

當前文檔最多預覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當前文檔最多預覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學公式或PPT動畫的文件,查看預覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權歸屬用戶,天天文庫負責整理代發(fā)布。如果您對本文檔版權有爭議請及時聯(lián)系客服。
3. 下載前請仔細閱讀文檔內(nèi)容,確認文檔內(nèi)容符合您的需求后進行下載,若出現(xiàn)內(nèi)容與標題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。