Sun Identity Manager 8.1 版本說明

使用 Identity Manager 效能評測器

Identity Manager 提供效能評測器公用程式,協助您對部署中與表單、Java、規則、工作流程與 XPRESS 相關的效能問題進行疑難排解。

表單、Java、規則、工作流程與 XPRESS 皆可能導致效能與範圍問題。效能評測器會評測不同區域所耗用的時間,可讓您決定這些表單、Java、規則、工作流程或 XPRESS 物件是否造成效能與範圍問題,以及倘若如此,是這些物件的哪些部分導致問題。

本節說明如何使用 Identity Manager 效能評測器,並提供指導以協助您瞭解如何對部署中的效能問題進行疑難排解。

此資訊分為以下主題:


備註 –

僅 7.1 Update 1 版及較新版本支援 Identity Manager 效能評測器。


概況

本節提供 Identity Manager 效能評測器的特性與功能簡介。相關資訊編排如下:

主要功能

您可以使用效能評測器公用程式執行以下作業:

效能評測器查找及管理來源的方式

本節說明效能評測器如何查找及管理下列 Identity Manager 物件的來源:


提示 –

在 [呼叫樹狀結構檢視] 或 [Hotspots 檢視] 中,您可以連按兩下對應 Java 方法、工作流程、表單、規則或 XPRESS 的任何節點,以檢視此節點的來源。


表單、規則、工作流程與 XPRESS 物件

當您使用效能評測器拍攝快照時,伺服器會計算所有效能評測資料並搜尋資料依賴的來源。伺服器接著會從儲存庫擷取所有這些來源,並將其納入快照中。因此,您可以確定快照中所顯示的 Identity Manager 物件,能確實反映擷取快照當時的狀況。

此程序會增加快照的大小,但來源大小實際上只佔總大小的一小部分。因此,您可以將快照傳送給 Sun 的客戶支援部門,而不用另外傳送原始碼檔案。

Java 來源

當您拍攝 Java 來源的快照時,用戶端會下載快照,然後搜尋快照以從專案擷取所有參照的 Java 來源。當您儲存快照時,用戶端會壓縮來源並將其附加在快照結尾。

然後,當您檢視快照並移至 Java 來源時,用戶端會先檢查快照內容。如果用戶端在此找不到內容,則會檢查專案的內容。此程序可讓您從自訂 Java 程式碼與 Identity Manager 程式碼傳送包含效能評測資料的快照。


備註 –

在 Java 來源快照中,請勿以為來源會隨伺服器更新或一直可以使用。


統計注意事項

以下各節包含計算效能評測器提供結果時所要考量的資訊:

Self Time 統計

若要計算根節點的 Self Time 統計,效能評測器會從根節點的總計時間扣除所有子節點的時間。

因此,未執行的子節點時間會反映在根節點的 Self Time 中。如果根節點有很長的 Self Time,則必須找出原因。您可能尚未執行適當的方法,因此檢查的地方有誤。

例如,假設方法 A 呼叫方法 B。

方法 A 總計需要 10 秒 (其中總計時間包含呼叫 B),而呼叫 B 總計需要 10 秒。

如果 A 與 B 皆已執行,則呼叫堆疊會反映此資訊。您會看到 A 的 Self Time 為 0 秒,而 B 的 Self Time 為 10 秒 (其中 10 秒是實際用在 B 中的時間)。但是,如果未執行 B,您僅會看到呼叫 A 需要 10 秒,因此 A 的 Self Time 為 10 秒。因此,您可能會以為問題是在 A,而不是在 B。

您尤其會在 JSP 初始編譯期間注意到 JSP 有很長的 Self Time。如果重設收集的結果,然後重新顯示頁面,則 Self Time 值會少得多。

建構子呼叫

由於 Java 方法策略的限制,對 this()super() 的初始呼叫會顯示為建構子呼叫的同層呼叫,而非子項呼叫。請參閱下列範例:


class A
{
   public A()
   {
      this(0);
   }
   public A(int i)
   {
   }
}

and:

class B
{
   public static void test()
   {
      new A();
   }
}
The call tree will look like this:
B.test()
   -A.<init>(int)
   -A.<init>()
Rather than this:
B.test()
   -A.<init>()
      -A.<init>(int)

常駐程式執行緒

多數 Identity Manager 的常駐程式執行緒 (例如 ReconTask.WorkerThread.run()TaskThread.WorkerThread.run()) 所耗用的時間看似很久,但請勿被此誤導。大部分的時間是耗用在等候事件時的暫停上。您必須研究這些追蹤才能知道處理事件實際耗用的時間。

入門

本節說明如何啟動效能評測器,以及如何使用效能評測器圖形化使用者介面的各項功能。相關資訊編排如下:

開始之前

由於效能評測器會耗用大量的記憶體,應大量增加伺服器與 Netbeans Java Virtual Machine (JVM) 的記憶體。

    若要增加伺服器的記憶體:

  1. 開啟 Netbeans 視窗並選取 [執行階段] 標籤。

  2. 展開 [伺服器] 節點,在 [隨附的 Tomcat] 上按一下滑鼠右鍵,然後從功能表中選取 [特性]。

  3. 請在顯示 [伺服器管理員] 對話方塊時,清除 [連線] 標籤上的 [啟用 HTTP 監視] 方塊。

  4. 選取 [平台] 標籤,將 [VM 選項] 設定為 -Xmx1024M,然後按一下 [關閉]。

    若要增加 Netbeans JVM 的記憶體:

  1. 開啟 netbeans-installation-dir \etc\netbeans.conff 檔案並找出下行:

    netbeans_default_options="-J-Xms32m -J-Xmx ...

  2. -J-Xmx 值變更為 -J-Xmx 1024M

  3. 儲存然後關閉檔案。

完成之後,可如下節所述啟動效能評測器。

啟動效能評測器

您可以使用下列任一方法從 Identity Manager IDE 視窗啟動效能評測器:


備註 –

當 Identity Manager 的主專案為 7.1 Update 1 版或較新版本時,會啟用 [在主專案上啟動 Identity Manager 效能評測器] 圖示。


當您啟動效能評測器時,會顯示 [效能評測器選項] 對話方塊,您可以在此指定要使用的效能評測選項。指定效能評測器選項提供設定這些選項的說明。

使用效能評測器

本節描述效能評測器圖形化使用者介面的功能,以及如何使用這些功能。相關資訊編排如下:

指定效能評測器選項

[效能評測器選項] 對話方塊包含下列標籤:

使用這些標籤上的選項以指出要評測效能的物件及設定檔中要顯示的元素。

指定效能評測器選項之後,請按一下 [確定] 以啟動效能評測器。效能評測器可根據專案配置執行下列兩項作業其中之一:


備註 –

您可以選取 [IDM] -> [設定 Identity Manager 實例],以控制此專案的 Identity Manager 實例動作。


模式

[模式] 標籤提供下列選項:

IDM 物件篩選器

[IDM 物件篩選器] 標籤提供下列選項:

Java 篩選器

選取 [Java 篩選器] 標籤可執行下列作業:

Java 篩選器會依方法式樣提供,並以包含或排除的式樣來表示 (根據標準方法名稱)。其中標準方法名稱為:

fully-qualified-class-name.method-name( parameter-type-1, parameter-type-2, ... )


備註 –

若是建構子,則 method-name<init>


下列是一些範例:


備註 –

由於篩選器僅會套用至自訂類別與 Identity Manager 類別,因此最後兩個範例目前是等同的。


請視需要適當修改 build.xml 中的下列各行,以執行其他 JAR。例如,


<instrument todir="${lighthouse-dir-profiler}/WEB-INF" 
verbose="${instrumentor.verbose}" includeMethods="${profiler.includes}" 
excludeMethods="${profiler.excludes}">
           <fileset dir="${lighthouse-dir}/WEB-INF">
               <include name="lib/idm*.jar"/>
               <include name="classes/**/*.class"/>
           </fileset>
</instrument>

依預設,配置會包含所有自訂類別與大部分的 Identity Manager 類別。由於某些 Identity Manager 類別在啟用後會中斷效能評測器,因此會強制排除這些類別。

例如,會排除來源為工作流程、表單與 XPRESS 引擎的類別,否則效能評測器在評測 Java 與 Identity Manager 物件的效能時會產生無法辨識的快照。

請注意,Java 篩選器會提供比 IDM 物件篩選器更仔細的篩選。Java 方法會使執行作業增加大量的經常性耗用時間,從而嚴重影響效能評測結果。由於是對 Identity Manager 物件進行解譯而不是編譯,因此可忽略執行此方法所耗用的時間。因此,基本上排除工作流程 A 而包含工作流程 B 是不必要的,依此類推。


備註 –

您無法在執行效能評測器時修改 Java 篩選器。您必須停止效能評測器,才能變更 Java 篩選器。


其他

[其他] 標籤提供下列選項:

使用 IDM 效能評測器檢視

IDM 效能評測器檢視包含下列區域:

目前的專案區域

[目前的專案] 區域包含列出所有目前專案的下拉式功能表。使用此功能表可選取要評測其效能的專案。

控制區域

[控制] 區域包含四個圖示,如下表所述:

圖示 

名稱 

用途 

表示 [啟動 Identity Manager 效能評測器] 圖示的圖片

啟動 Identity Manager 效能評測器 

啟動效能評測器並開啟 [效能評測器選項] 對話方塊。 

表示 [停止 Identity Manager 效能評測器] 圖示的圖片

停止 Identity Manager 效能評測器 

停止效能評測器。 

表示 [重設收集的結果] 圖示的圖片

重設收集的結果 

重設到目前為止所收集的效能評測結果。 

表示 [修改效能評測] 圖示的圖片

修改效能評測 

重新開啟 [效能評測器選項] 對話方塊,以變更任何設定來修改目前的效能評測結果。 

狀態區域

[狀態] 區域會報告是否已連線至主機,並提供效能評測器啟動、執行與停止的狀態資訊。

效能評測結果區域

[效能評測結果] 區域包含兩個圖示,如下表所述:

圖示 

名稱 

用途 

表示 [啟動 Identity Manager 效能評測器] 圖示的圖片

啟動 Identity Manager 效能評測器 

啟動效能評測器並開啟 [效能評測器選項] 對話方塊。 

表示 [重設收集的結果] 圖示的圖片

重設收集的結果 

重設到目前為止所收集的效能評測結果。 

已儲存的快照區域

[已儲存的快照] 區域提供所有儲存的快照清單。


備註 –

儲存快照提供儲存快照的說明。


此外,您可以使用下列按鈕管理這些快照:

使用快照檢視

當您開啟快照時,Identity Manager IDE 右上方的 [快照檢視] 視窗會顯示結果。

快照提供數種資料的檢視,以下各節將對此進行描述:

呼叫樹狀結構檢視

[呼叫樹狀結構檢視] 包含樹狀結構表格,顯示整個系統的呼叫計時及呼叫計數。

此樹狀結構表格包含三欄:

Hotspots 檢視

[Hotspots 檢視] 提供直列式節點清單,顯示所有父系節點的集合呼叫計時。

此檢視包含下列欄:

Back Traces 檢視

[Back Traces 檢視] 提供顛倒的呼叫堆疊,顯示呼叫每個節點的所有來源呼叫鏈。

您可以使用這些統計回答以下問題:如果我省略此節點發出的此特定呼叫鏈,可以節省多少時間?

您可以在節點 (稱為根節點) 上按一下滑鼠右鍵,並從快顯功能表中選取 [顯示 Back Traces],以從任何其他快照檢視存取 [Back Traces] 檢視。


備註 –

[Time] 與 [Invocations] 資料值在 [Back Traces] 檢視中有不同的含義:


被呼叫端檢視

[被呼叫端檢視] 提供節點 (稱為根節點) 的彙總呼叫樹狀結構,而不考慮其父鏈為何。

如果從主要呼叫樹狀結構的許多位置呼叫的區域有問題,而您想檢視節點的整體設定檔,這些統計會很有幫助。

您可以在節點 (稱為根節點) 上按一下滑鼠右鍵,並從快顯功能表中選取 [顯示被呼叫端],以從任何其他快照檢視存取 [被呼叫端檢視]。


備註 –

[被呼叫端檢視] 中所使用的 [Time] 與 [Invocations] 資料值,和 [呼叫樹狀結構] 檢視中所使用的資料值有相同含義。


使用快顯功能表選項

在 [呼叫樹狀結構檢視] 或 [Hotspots 檢視] 中任何的節點上按一下滑鼠右鍵,會隨即顯示快顯功能表,內含下表所述的選項:

功能表選項 

說明 

移至來源 

選取此選項可檢視對應 Java 方法、工作流程、表單、規則或 XPRESS 之節點的 XML 來源。如需有關此檢視的詳細資訊,請參閱效能評測器查找及管理來源的方式

顯示 Back Traces 

選取此選項可存取 [Back Traces] 檢視。如需有關此檢視的詳細資訊,請參閱Back Traces 檢視

顯示被呼叫端 

選取此選項可存取 [被呼叫端檢視]。如需有關此檢視的詳細資訊,請參閱被呼叫端檢視

在 Hotspots 中尋找 

選取此選項可在 [Hotspots 檢視] 中尋找節點。如需有關此檢視的詳細資訊,請參閱Hotspots 檢視

清單選項 -> [排序] -> 

此選項有下列選項: 

  • None

  • 呼叫樹狀結構

  • Time

  • Invocations

  • Ascending

  • Descending

清單選項 -> [變更可見欄] 

選取此選項可變更 [呼叫樹狀結構] 或 [Hotspots] 清單中所顯示的欄。 

您可以在 [變更可見欄] 對話方塊顯示時,選取下列一個或多個選項:1 

  • Call Tree:Call Tree

  • Invocations:Invocations

  • Time:Time

搜尋快照

使用 [快照檢視] 視窗頂端的 [搜尋] 圖示表示 [搜尋] 圖示的圖片 ,在呼叫樹狀結構檢視或 Hotspots 樹狀結構中依名稱搜尋節點。

或者,在 [呼叫樹狀結構檢視] 或 [Hotspots 檢視] 中的任何節點上按一下滑鼠右鍵,然後從快顯功能表中分別選取 [在呼叫樹狀結構中尋找] 或 [在 Hotspots 中尋找] 以搜尋節點。

儲存快照

效能評測器提供數個儲存快照的選項。如需這些選項的描述,請參閱下表:

圖示 

名稱 

用途 

表示 [啟動 Identity Manager 效能評測器] 圖示的圖片

[在專案中儲存快照] 圖示 (位於 [快照檢視] 視窗頂端) 

在專案的 nbproject/private/idm-profiler 目錄中儲存快照。儲存在專案中的快照會列於效能評測器檢視的 [已儲存的快照] 區段中。

表示 [停止 Identity Manager 效能評測器] 圖示的圖片

[在外部儲存快照] 圖示 (位於 [快照檢視] 視窗頂端) 

將快照另存在外部的任意位置。 

表示 [重設收集的結果] 圖示的圖片

[另存新檔] 按鈕 (位於 [已儲存的快照] 區域中) 

將快照另存在外部的任意位置。 

指導:效能問題的疑難排解

Identity Manager 提供指導 (profiler-tutorial.zip) 以協助您瞭解如何使用效能評測器對表單、Java、規則、工作流程與 XPRESS 進行疑難排解。

使用下列步驟完成指導。

Procedure步驟 1:建立 Identity Manager 專案

  1. 選取 [檔案] -> [新增專案]。

  2. 請在顯示 [新增專案] 精靈時指定下列項目,然後按 [下一步]:

    1. 在 [種類] 清單中,選取 [Web] 以表示建立的專案類型。

    2. 在 [專案] 清單中,選取 [Identity Manager 專案]。


      備註 –

      您必須建立一般 Identity Manager 專案才能獲得功能完整的開發環境。請勿選取 [Identity Manager 專案 (遠端)] 選項。


  3. 填寫 [名稱與位置] 畫面上的下列欄位,然後按 [下一步]:

    • 專案名稱:輸入 Idm80 作為專案名稱。

    • 專案位置:使用預設位置或指定不同的位置。

    • 專案資料夾:使用預設資料夾或指定不同的資料夾。

  4. 請在顯示 [Identity Manager WAR 檔案位置] 面板時,輸入 Identity Manager 8.1 war 檔案的位置。一般而言,解壓縮此檔案會在相同目錄中建立 idm.war 檔案。

  5. 按 [下一步] 繼續執行 [儲存庫設定] 畫面。

    您應該不需要變更此面板上的預設設定,請直接按一下 [完成]。當您在 [Identity Manager IDE 輸出] 視窗中看到 BUILD SUCCESSFUL (建置成功) 訊息時,即可解壓縮效能評測器指導檔案。請參閱步驟 2:解壓縮效能評測器指導以取得說明。

Procedure步驟 2:解壓縮效能評測器指導

  1. 解壓縮專案根目錄中的 profiler-tutorial.zip。解壓縮的檔案包含:

    <project root>/custom/WEB-INF/config/ProfilerTutorial1.xml
    <project root>/custom/WEB-INF/config/ProfilerTutorial2.xml
    <project root>/src/org/example/ProfilerTutorialExample.java
    <project root>/PROFILER_TUTORIAL_README.txt
  2. 啟動效能評測器。繼續執行步驟 3:啟動效能評測器

Procedure步驟 3:啟動效能評測器

  1. 使用開始之前中提供的說明,增加伺服器與 Netbeans JVM 的記憶體。

  2. 使用概況中所述的任何方法啟動效能評測器。

  3. 顯示 [效能評測器選項] 對話方塊時,可以指定效能評測選項。

  4. 繼續執行步驟 4:設定效能評測器選項


    備註 –

    如需有關所有不同效能評測器選項的詳細資訊,請參閱指定效能評測器選項


Procedure步驟 4:設定效能評測器選項

若要使用此指導,請指定下列效能評測器選項:

  1. 在 [模式] 標籤上,選取 [Java 與 IDM 物件] 以評測表單、Java、規則、工作流程與 XPRESS 物件的效能。

  2. 選取 [Java 篩選器] 標籤。

    使用下列步驟停用所有 Identity Manager Java 類別,但自訂 Java 類別 (在此案例中為 org.example.ProfilerTutorialExample) 除外

    1. 按一下 [新增],新的空白欄位會顯示在 [篩選器] 欄底部。

    2. com.waveset.* 輸入新的欄位,然後選取 [排除] 方塊。

    3. 再按一下 [新增]。

    4. com.sun.idm.* 輸入新的欄位,然後選取 [排除] 方塊。

  3. 按一下 [確定] 以執行效能評測器。


    備註 –

    如果是第一次在專案上執行效能評測器,或最近執行過清除專案動作,則效能評測器需要幾分鐘才能完成。


    當效能評測器完成處理時,系統會提示您登入。

  4. 輸入密碼 configurator,選取 [記住密碼] 方塊,然後按一下 [確定] 繼續。

  5. 請在顯示 Identity Manager 視窗時登入。


    備註 –

    通常您應該以不同的使用者身份登入 Identity Manager,而不是再次以 configurator 登入。您已使用 configurator 的身份登入效能評測器,Identity Manager 階段作業池不允許使用者重複登入。登入多次可能造成階段作業池故障的假象,且可能扭曲細部效能問題的效能評測結果。

    但是,針對此簡單的範例,階段作業區並不重要,因此您可以 configurator/configurator 登入。


  6. 在 Identity Manager 中,選取 [伺服器作業] -> [執行作業],然後按一下 [ProfilerTutorialWorkflow1]。

    此指導可能需要幾分鐘才會回應。

  7. 雖然您現在可拍攝快照,但目前請重設結果、執行效能評測器並再執行一次,然後拍攝快照。


    備註 –

    執行效能評測器幾次再拍攝快照是最佳作法,如此可確保所有快取皆就緒、所有 JSP 都已編譯等。

    多次執行效能評測器可讓您專注在實際的效能問題上。但如果您有快取寫入的問題,則不要如此做。


    1. 返回 Identity Manager IDE 中的 IDM 效能評測器檢視。在 [效能評測結果] 區段 (或 [控制] 區段) 中,按一下 [重設收集的結果] 圖示,可重設目前為止收集的所有結果。

    2. 在 Identity Manager 中,再次選取 [伺服器作業] -> [執行作業],然後按一下 [ProfilerTutorialWorkflow1]。

    3. 請在顯示 [進程圖] 時,返回 Identity Manager IDE 並按一下 [效能評測結果] 區段中的 [拍攝快照]。

  8. Identity Manager IDE 會下載快照並在視窗右側顯示結果。

    此區域為 [呼叫樹狀結構] 檢視。在 [呼叫樹狀結構] 頂端,您會看到 /idm/task/taskLaunch.jsp,其 [Time] 欄中列有時間。此時間應表示整個請求耗用六秒以上。

  9. 展開 /idm/task/taskLaunch.jsp 節點,您會看到 ProfilerTutorialWorkflow1 耗用六秒。

  10. 展開 ProfilerTutorialWorkflow1 節點。請注意,activity2 耗用四秒,而 activity1 耗用兩秒。

  11. 展開 activity2

    請注意,action1 耗用兩秒,而 action2 耗用兩秒。

  12. 展開 action1,請注意 <invoke> 也耗用兩秒。

  13. 連按兩下 <invoke> 以開啟 ProfilerTutorialWorkflow1.xml,並反白顯示下行:


    <invoke name=’example’ class=’org.example.ProfilerTutorialExample’/>

    您應該會看到呼叫 ProfilerTutorialExample 方法耗用兩秒。


    備註 –

    您實際上會瀏覽快照中擷取的 XML 來源,而非專案中的來源。快照本身即具備所有資料。(如需更多資訊,請參閱效能評測器查找及管理來源的方式。)


  14. 選取 [CPU:<date>< time>] 標籤以返回快照。

  15. 展開 <invoke> 節點,請注意效能評測器在 Java ProfilerTutorialExample.example() 方法中耗用兩秒。

  16. 連按兩下方法名稱以開啟 ProfilerTutorialExample.java 來源,並反白顯示下行:


    Thread.sleep(2000);

    發生問題!此方法包含兩秒的執行緒暫停。

  17. 若返回 [呼叫樹狀結構],您會看到所有兩秒的路徑都指向此方法。(您應該看到三個路徑;總計六秒。)

  18. 選取 [Hotspots] 標籤 (位於 [呼叫樹狀結構] 區域底部) 以開啟 [Hotspots] 檢視。請注意,ProfilerTutorialExample.example() 的總計 Self Time 為六秒。

    (如需有關 Hotspots 的更多資訊,請參閱使用快照檢視。)

  19. ProfilerTutorialExample.example() 上按一下滑鼠右鍵,然後從快顯功能表中選取 [顯示 Back Traces]。

    新的 [Back Traces] 標籤會顯示在此區域底端。

  20. 展開 [Back Traces] 標籤上的 ProfilerTutorialExample.example() 節點,會看到有三處呼叫此方法,且從每處呼叫此方法都耗用兩秒。

    (如需有關 Back Traces 的更多資訊,請參閱使用快照檢視。)

  21. 按一下 [在專案中儲存快照] 圖示以儲存並關閉快照。

    如果您查看 [IDM 效能評測器] 標籤上的 [已儲存的快照] 區段,應該會看到您的快照。(您可能必須向下捲動。)

  22. 選取已儲存的快照,然後按一下 [開啟] 重新開啟快照。


    備註 –

    您可以使用 [另存新檔] 按鈕在外部儲存快照,並使用 [載入] 按鈕從專案外部載入快照。


  23. 再次關閉快照。

Procedure步驟 5:評測 ManualAction 工作流程的效能

此指導的下一個部分會說明如何評測工作流程 ManualAction 的效能。

  1. 在 Identity Manager 中,選取 [伺服器作業] -> [執行作業],然後按一下 [ProfilerTutorialWorkflow2]。

    在幾分鐘後,會顯示一個空白的表單。

  2. 按一下 [儲存],會隨即顯示進程圖。

  3. 再次選取 [伺服器作業] -> [執行作業]。

  4. 返回 Identity Manager IDE IDM 效能評測器檢視,然後在 [效能評測結果] 區段中,按一下 [重設收集的結果] 圖示。

  5. 現在按一下 Identity Manager 中的 [ProfilerTutorialWorkflow2]。

  6. 當空白表單再次顯示時,請按一下 [儲存]。

  7. 在 IDM 效能評測器檢視中,按一下 [拍攝快照]。

    幾秒之後,快照應顯示在 [呼叫樹狀結構] 區域中。您應該會看到 /idm/task/workItemEdit.jsp 耗用六秒以上。(此結果會對應至工作流程中的手動操作。)

  8. 展開 /idm/task/workItemEdit.jsp 節點,並注意執行 ManualAction 表單中之所有 Derivation 的節點總計耗用六秒。

  9. 依序展開 DerivationdisplayNameFormvariables.dummy<block> 節點。

    您應該會看到 <block> 耗用了六秒,其間效能評測器三次呼叫 ProfilerTutorialExample.example() 方法,每次呼叫耗用兩秒。

  10. 您可以連按兩下 <block> 以檢視來源。