abap執行跟蹤簡介
為了分析abap程式的執行效能,除sql跟蹤(tcode:st05)之外還有個很重要的工具那便是abap跟蹤(se30)。
1.使用abap跟蹤
這個工具的使用方法和sql跟蹤一樣簡單:
1)執行事務**se30
2)限制變式的選擇和建立可參照下面的介紹
3)然後確保程式至少被執行了一次,最好多次,以便填充buffer和cache。我們可以反覆執行程式,以得到更新的根宗結果。這樣可避免我們可以忽略我們測試的程式第一次執行所帶來的成本
4)在abap跟蹤工具裡執行你的程式,可以是事務**,程式和功能模組
5)關掉跟蹤
6)跟蹤結果所在的檔案在file info中可以看到
7)評估跟蹤檔案
abap執行分析初始螢幕
第乙個:程式部分
第二個:語句部分
第三個:執行時間和型別部分
推薦間三個測量變式:
a)pref_by_call(default):在程式部分什麼都不選,語句部分除kernel level runtime administration和internal table change and read operation之外其它都選,在第三部分設定aggreation 『per call position』和最大的檔案的大小為20000k,最大的執行時間為3000sec
b)pref_by_call_itab,除了選上internal table change and read operation外其它的更上面一樣
c)pref_no_agg,除了把第三部分的no aggregation設成on,其它的跟pref_by_call一樣
當abap程式執行完之後,回到abap跟蹤的初始介面,你就會看到最新的跟蹤檔案。
通過『other files』 你可以得到前幾次測量的跟蹤檔案,注意,se30的跟蹤檔案在8天之後將會自動被刪除。另外由於跟蹤檔案是儲存在你所登陸到的應用伺服器之上的,所以你要清楚你登陸的是哪個伺服器。
2.跟蹤結果概覽
如果你要分析跟蹤資料,你就會看到下圖的結果:
這個螢幕最重要的資訊便是在資料庫和應用伺服器層的總共執行時間。這些地方正是你可以優化的地方。或許你已經對總共的執行時間有所期望或受外界所限。通常情況下為了達到2sec的響應時間,你在應用層的執行時間要遠遠小於2sec。而較大的批處理程式可能需要較長的時間。當然執行時間的好壞,還需要你根據具體情況去判斷。
圖中的紅綠顏色沒有什麼本質上的意義,只是如果它的百分比達到了50%就會由紅色變成白色。
對於乙個abap程式來說資料庫和系統的執行時間應該比較短,至少不能太大。對於系統執行時間來說,10%已經是想大大了。對於資料庫來說執行時間一般不能超過50%。abap是邏輯處理的主要部分,所以abap應當占有最多的執行時間。
1.跟蹤命中列表
這裡的每一行記錄了每個操作的處理和執行時間。如果你在限制條件中把aggregation設為per operatrion那麼乙個操作可能會出現幾行。這裡的唯一主鍵便是call,program name和line。
比較重要的測量值是:no,gross和net,它告訴了你每個操作執行的頻次,所需的時間,gross包含子操作所花費的時間,net只計算了操作本身所需的時間。注意時間的單位是微秒,時間是總時間不是每部操作的時間。
1.檢查跟蹤命中列表
首先以gross time倒序排列檢查列表,你看到的也是預設的顯示方式。
l高gross time便是消耗資源較高的分支
l然後按照net time排倒序,高的net time便是消耗資源較高的語句
我們可以把操作分為以下幾種型別:
l模組單位如methods, function和forms
linternal tables
lremote function calls
ldatabase operations
lother types
2.aggreation no mode
aggreation no mode有更加詳細的分析報告。因為每一種型別的操作都被跟蹤了,所以它比上面的形式具有更多的螢幕。
微服務跟蹤簡介
一 分布式計算的八大誤區 1 網路可靠 2 延遲為零 3 寬頻無限 4 網路絕對安全 5 網路拓撲不會改變 6 必須有一名管理員 7 傳輸成本為零 8 網路同質化 分布式計算的許多點都在描述乙個問題 網路問題。網路非常脆弱,同時,網路資源也是有限的。微服務之間通過網路進行通訊。如果能夠跟蹤每個請求,...
abap執行時間
abap 4的程式會需要花費大量的時間執行,而且會使其它程序被迫暫停以等待當前程式執行結束。這裡提供一些建議以提高你的程式執行速度和系統荷載。1.最主要的是儘量減少i o操作,然後是記憶體占用,在再就是cpu的負載。類似對硬碟的讀寫的i o操作是最耗費時間的。如果對記憶體的操作不加以控制,可能有些時...
ABAP 防止程式重複執行
有的程式需要現在同一時間只能執行乙個,這種需求可以用鎖的方式來實現,在start of selection 事件後加鎖,如果是加鎖成功,說明還沒有程式在執行,如果是加鎖失敗,則說明已經有同名程式在執行,報錯即可。注 這個鎖是借用程式修改的鎖,在se38修改程式的時候也會加這個鎖。程式如下 start...