成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

SylixOS調試方法詳解——性能分析

1. SylixOS調試方法介紹

SylixOS實現(xiàn)了一個功能強大的調試stub(樁),可在設備或模擬器上在線調試應用程序,RealEvo-IDE也提供配套的調試插件。目前RealEvo-IDE既支持自動推送調試、也支持傳統(tǒng)的手動啟動gdbserver的調試方式。在官方公布的使用手冊中沒有詳細寫出在日常開發(fā)中非常實用的幾種調試方式,本文主要介紹性能分析的調試方法。

成都創(chuàng)新互聯(lián)于2013年開始,先為蕭山等服務建站,蕭山等地企業(yè),進行企業(yè)商務咨詢服務。為蕭山企業(yè)網(wǎng)站制作PC+手機+微官網(wǎng)三網(wǎng)同步一站式服務解決您的所有建站問題。

在日常開發(fā)過程中經(jīng)常會遇到程序不夠快的情況,但是不知道到底慢在哪里,往往是隨意尋找函數(shù)優(yōu)化,并沒有沒有真正定位到程序哪里慢,存在很大的偶然性。性能分析工具就是用動態(tài)采樣的方式定位真正慢的位置,定位之后再在這個點上進行優(yōu)化,最終程序運行時間對比是非常明顯的。

2. SylixOS性能分析調試步驟詳解

2.1.1   性能分析演示demo

SylixOS的性能分析主要是通過加載性能分析模塊(sperfs.ko)來查看各個函數(shù)消耗的CPU時間,能夠準確找到需要優(yōu)化的點。下面通過建立一個“perfoms_check_app”來做性能分析調試的演示,代碼如程序清單 21所示。

程序清單 21  static_check_app代碼

//sperfstart sperfs

#include <stdio.h>

#define   USE_SLEEP

void module_sleep(int iSecond)

{

#ifdef USE_SLEEP

   sleep(1);

#else

   bspDelayUs(iSecond*1000*1000);

#endif

}

void calc_value(void)

{

   static int i;

   i++;

}

void do_something(void)

{

   /*

    *  do something

    */

   calc_value();

   module_sleep(1);

}

int main (int argc, char **argv)

{

   while (1){

//     do_something();

   }

    return  (0);

}

2.1.2   加載性能分析模塊(sperfs.ko)

(sperfs.ko模塊為SylixOS性能分析檢查提供一種調試工具)

點擊IDE界面右上角“Device”;選擇目標機器IP地址,這里使用的是虛擬機的IP地址:192.168.7.32,右擊IP號打開“Launch FTP”進行傳輸;然后在本地文件夾中找到sperfs.ko模塊,傳輸路徑選擇在“/lib/modules”目錄下;最后雙擊sperfs.ko即可完成模塊加載的準備工作,具體步驟如圖 21所示。

SylixOS調試方法詳解——性能分析

圖 21  加載sperfs.ko模塊方法一

除上述方法外還可以通過“cp”指令將性能分析模塊的拷貝在“/lib/modules”目錄下,如圖 22所示。

SylixOS調試方法詳解——性能分析

圖 22  加載sperfs.ko模塊方法二

完成后在“cd /lib/modules”目錄下用“l(fā)s”查看是否完成拷貝,結果如圖 22所示。

SylixOS調試方法詳解——性能分析

圖 23  查看是否完成加載

然后通過“chmod”改變文件的權限,再用“modulereg”命令注冊性能分析模塊,如圖 23所示。

SylixOS調試方法詳解——性能分析

圖 24 注冊內(nèi)核模塊

最后通過“sperfstart”命令開啟性能分析的功能,再用“sperfs”命令查看性能分析結果,如圖 24所示。

SylixOS調試方法詳解——性能分析

圖 25  開啟性能分析模塊

除此之外我們通過Talnet再打開一個調試窗口,運行演示程序“perfoms_check_app”,性能分析結果如圖 25所示,除空閑線程t_idleo和sperfs.ko外消耗CPU時間最多的函數(shù)是程序是performs_check中的main函數(shù),在這里只需要優(yōu)化該函數(shù)就可以減少程序運行時間。

SylixOS調試方法詳解——性能分析

                                                                         圖 26  性能分析結果                                                

對該函數(shù)進行優(yōu)化,優(yōu)化結果如程序清單 22所示。

程序清單 22  main函數(shù)優(yōu)化結果

int main (int argc, char **argv)

{

   while (1){

    do_something();

   }

    return  (0);

}

再次進行性能分析,結果如圖 26所示,main函數(shù)消耗的CPU時間已經(jīng)大大減少。

圖 27  優(yōu)化后性能分析結果

3. 總結

在SylixOS中可以使用多種調試方式進行相關調試,根據(jù)實際情況對程序進行調試,本節(jié)主要介紹性能分析檢查工具。下一篇文檔將通過一個完整的工程文件來描述多種調試方式。

4. 參考資料

《SylixOS應用程序開發(fā)手冊》

《RealEvo-IDE使用手冊》

當前名稱:SylixOS調試方法詳解——性能分析
網(wǎng)頁網(wǎng)址:http://jinyejixie.com/article28/ghosjp.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供App設計網(wǎng)站制作、小程序開發(fā)、做網(wǎng)站品牌網(wǎng)站設計、網(wǎng)站策劃

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

成都seo排名網(wǎng)站優(yōu)化
株洲市| 敦煌市| 余姚市| 穆棱市| 丰都县| 仁布县| 台中市| 乌拉特中旗| 四会市| 宁远县| 洛阳市| 阿荣旗| 康乐县| 保山市| 穆棱市| 布尔津县| 钦州市| 宝兴县| 西和县| 溧水县| 陇川县| 铜陵市| 营山县| 庆阳市| 仪征市| 龙海市| 莱阳市| 许昌市| 东兰县| 内黄县| 怀化市| 方正县| 开原市| 海安县| 墨玉县| 张家口市| 喀喇沁旗| 靖宇县| 临洮县| 遂溪县| 宁海县|