色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

在Python中評估不同嵌入式算法的性能

星星科技指導員 ? 來源:嵌入式計算設計 ? 作者:Mohammed Billoo ? 2022-07-04 10:59 ? 次閱讀

Python嵌入式應用程序開發中變得越來越普遍,特別是對于在網絡邊緣運行的機器學習框架。但是,這種高級通用編程語言抽象出代碼中的許多細節,這些細節可能會以開發人員可能不知道的方式影響實現的性能。

讓我們舉一個明顯的例子:計算 斐波那契數列。至少有兩種不同的方法可以執行此操作,遞歸算法和標準迭代算法,性能水平差異很大。

可以使用稱為 Tracealyzer 的工具評估不同實現或算法的性能。這是來自 Percepio 的可視化跟蹤診斷工具,可讓嵌入式軟件開發人員在運行時深入了解代碼,以便更輕松地調試系統級問題,并幫助他們改進軟件的設計和性能。

Tracealyzer 可以與傳統調試器(如開源 Eclipse 工具)并排使用,并通過系統級別的幾個附加視圖補充詳細的調試器視圖。這有助于理解經典調試器不足以解決的實時問題。

結合Linux 操作系統發行版中的LTTng開源跟蹤包,Tracealyzer 可以展示不同級別的性能。這與處理器無關,并且是所選算法的結果。

對于評估,斐波那契數列的每個實現都在一個模塊中執行:

def recur_fibo(n):

if n 《=1 n:

return n

else:

return(recur_fibo(n-1) + recur_fibo(n-2))

def non_recur_fibo(n):

result = []

a,b = 0,1

while a 《 n:

result.append(a)

a,b = b, a+b

return result

There are separate Python source files that call the two functions above:

import lttngust

import logging

import fib

def example():

logging.basicConfig()

logger = logging.getLogger(‘my-logger’)

logger.info(‘Start’)

fib.recur_fibo(10)

logger.info(‘Stop’)

logger.info(‘Start’)

fib.non_recur_fibo(10)

logger.info(‘Stop’)

if __name__ == ‘__main__’:

example()

The following commands capture a trace in LTTng that can then be examined in Tracealyzer:

$》 lttng create

$》 lttng enable-event --kernel sched_switch

$》 lttng enable-event --python my-logger

$》 lttng start

$》 python3 .py

$》 lttng stop

$》 lttng destroy

poYBAGLCV56ANDAHAARarNZx8ew762.png

將標準 Python 記錄器替換為名為“my-logger”的記錄器允許 Tracealyzer 在工具的跟蹤視圖中顯示事件。由于 Tracealyzer 在此特定示例中未捕獲任何應用程序數據,因此無需將軟件配置為讀取數據值。相反,只需要一個自定義間隔來標記兩個函數的進入和退出。

雖然在上面的跟蹤視圖中可以看到顯著的性能差異,但 Tracealyzer 還可以提供更具體的性能指標。這可以通過轉到視圖并單擊間隔和狀態機并使用代碼中的 logger.info() 調用插入并標記條目和候選函數的退出。

pYYBAGLCV6WATkeQAABUEXGg624196.png

區間圖顯示遞歸算法(首先執行)和迭代算法(其次執行)之間存在 20 倍的差異。

在此示例中,我們僅使用每種算法計算 10 個斐波那契數。如果沒有 Tracealyzer,可能需要更多的迭代才能獲得一些有意義的見解,但這有兩個問題。首先,當遞歸 Fibonacci 算法運行到 1000(甚至 100)時,Python 會簡單地坐在那里。這將是令人擔憂的,因為不清楚這種不響應是由于實現中的錯誤還是其他原因。在這種情況下,我們可能會猜到為什么會發生這種情況,但是對于更復雜的問題,需要大量的日志記錄來了解瓶頸在哪里。

其次,如果在嵌入式系統上運行多個應用程序,這些其他應用程序可能會破壞目標應用程序,這也會增加算法或函數完成執行的時間。沒有蹤跡,就沒有簡單的方法來確定是否是這種情況。

相反,Python 中的 LTTng 和 Tracealyzer 的結合突出表明,問題在于所選算法的基本特征。這在開發更復雜的算法時非常寶貴。此示例實現可作為如何評估未來算法實現的性能的參考。在單獨的 Python 模塊中實現核心功能通常是一種很好的編程習慣,這也簡化了對特定功能的跟蹤。

由于跟蹤開銷幾乎可以忽略不計,跟蹤點可以保留在應用程序中,因為它在目標嵌入式系統甚至生產中進行測試,從而允許 Tracealyzer 工具在生產代碼庫中生成性能指標。這對于常規系統測試非常有用,并且允許使用相同的代碼庫來確保應用程序在功能上正確且高性能,而只需進行最少的更改。

結論

使用 Tracealyzer 和 LTTng 捕獲 Python 應用程序中的性能指標提供了對算法實現的寶貴分析。

這種方法的最小開銷意味著可以保留代碼的檢測以在目標嵌入式系統上使用。這可以對目標應用程序進行更多監控,并促進對與其他應用程序和操作系統交互的分析。例如,可能有另一個進程或線程搶占目標應用程序并影響性能。Tracealyzer 和 LTTng 的組合可以識別此類異常的原因,這允許開發人員改進實現以防止進一步的問題。

雖然斐波那契數列的示例實現相對無害,但它突出了 Python 語言的一個關鍵特征,可以為更復雜實現的開發提供信息

此示例還顯示了在設計中使用單獨模塊的價值。使用跟蹤,開發人員可以在擴展到完整的系統實現之前測量和驗證這些模塊中關鍵核心功能的性能,而無需大量開銷。這有助于證明應用程序在功能上正確且性能良好,且目標環境中的更改最少。

審核編輯:郭婷

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 嵌入式
    +關注

    關注

    5086

    文章

    19144

    瀏覽量

    306097
  • python
    +關注

    關注

    56

    文章

    4799

    瀏覽量

    84810
收藏 人收藏

    評論

    相關推薦

    MPU嵌入式系統的應用

    一、MPU的基本功能 微處理器單元(MPU)是嵌入式系統的大腦,負責執行程序指令、處理數據和控制其他硬件設備。MPU的基本功能包括: 指令執行:MPU能夠從存儲器讀取指令,解碼這些指令,并執行
    的頭像 發表于 01-08 09:26 ?117次閱讀

    LDO嵌入式系統的應用 常見LDO故障及解決方法

    LDO嵌入式系統的應用 LDO(Low Dropout Regulator,低降壓線性穩壓器)是一種常用的電源管理集成電路,它在嵌入式系統
    的頭像 發表于 12-13 09:08 ?595次閱讀

    mmc卡在嵌入式系統的使用

    隨著科技的發展,嵌入式系統我們的日常生活扮演著越來越重要的角色。從智能手機到家用電器,再到工業控制系統,嵌入式系統無處不在。存儲設備作為嵌入式
    的頭像 發表于 11-25 09:58 ?286次閱讀

    什么是嵌入式?一文讀懂嵌入式主板

    現代科技浪潮嵌入式技術已成為支撐各種智能設備和系統運行的核心力量。那么,究竟什么是嵌入式嵌入式系統,顧名思義,是將計算機的硬件和軟件
    的頭像 發表于 10-16 10:14 ?1176次閱讀

    嵌入式主板是什么意思?嵌入式主板全面解析

    嵌入式主板,通常被稱為嵌入式系統的核心組件,是一種用于控制和數據處理的計算機硬件,其設計旨在嵌入特定設備執行專門任務。嵌入式主板如同是設備
    的頭像 發表于 09-30 10:05 ?594次閱讀

    嵌入式系統的實時操作系統

    嵌入式RTOS是嵌入式應用程序運行、相互交互和與外界通信的底層軟件機制。本節,您將了解嵌入式軟件開發人員使用哪些流行RTOS以及它們運行
    的頭像 發表于 08-20 11:28 ?506次閱讀

    聚徽-嵌入式工控機性能方面有什么優勢

    嵌入式工控機,亦被稱為 Box 整機或 Embedded Industrial Computer,是專為工業現場環境打造的緊湊型計算機。與普通工控機相比,嵌入式工控機展現出了獨特的優勢,尤其商品
    的頭像 發表于 08-13 09:25 ?347次閱讀

    機器視覺嵌入式的應用

    機器視覺嵌入式系統的應用是一個廣泛而深入的話題,涉及到許多不同的領域和技術。 機器視覺嵌入式系統
    的頭像 發表于 07-16 10:30 ?550次閱讀

    深度學習算法嵌入式平臺上的部署

    隨著人工智能技術的飛速發展,深度學習算法各個領域的應用日益廣泛。然而,將深度學習算法部署到資源受限的嵌入式平臺上,仍然是一個具有挑戰性的任務。本文將從
    的頭像 發表于 07-15 10:03 ?1510次閱讀

    嵌入式工控主板智慧醫療診斷設備的應用

    嵌入式工控主板智慧醫療診斷設備的應用廣泛且深入,其高集成度、低功耗、高性能等特點使得它成為現代醫療設備不可或缺的一部分。以下是對
    的頭像 發表于 07-11 10:51 ?428次閱讀
    <b class='flag-5'>嵌入式</b>工控主板<b class='flag-5'>在</b>智慧醫療診斷設備<b class='flag-5'>中</b>的應用

    嵌入式fpga是什么意思

    嵌入式FPGA是指將FPGA技術集成到嵌入式系統的一種解決方案。嵌入式系統是一種為特定應用而設計的計算機系統,它通常包括處理器、內存、外設接口等組件,并且被
    的頭像 發表于 03-15 14:29 ?1289次閱讀

    定制嵌入式主板,需要考慮的功能有哪些?

    隨著科技的不斷發展和進步,嵌入式系統各行各業得到了廣泛的應用。嵌入式主板作為嵌入式系統的核心組件,起著至關重要的作用。
    的頭像 發表于 02-29 17:38 ?531次閱讀
    定制<b class='flag-5'>嵌入式</b>主板,需要考慮的功能有哪些?

    嵌入式人工智能的就業方向有哪些?

    嵌入式人工智能的就業方向有哪些? 新一輪科技革命與產業變革的時代背景下,嵌入式人工智能成為國家新型基礎建設與傳統產業升級的核心驅動力。同時在此背景驅動下,眾多名企也紛紛
    發表于 02-26 10:17

    嵌入式工控機性能特點 嵌入式工控機應用場景

    嵌入式工控機性能特點 嵌入式工控機應用場景 嵌入式工控機是一種專門設計用于工業控制系統的計算機設備。它具有與傳統計算機不同的性能特點,并且
    的頭像 發表于 02-04 11:35 ?717次閱讀

    嵌入式學習步驟

    硬件組件。 (4).開發固件:編寫嵌入式系統的固件,這是嵌入式系統的軟件部分。固件負責控制硬件并執行特定任務。 (5).調試和測試:嵌入式系統部署到實際環境
    發表于 02-02 15:24
    主站蜘蛛池模板: 亚洲精品97福利在线| 欧美亚洲日韩自拍高清中文| 日本精品久久无码影院| 诱人的女邻居9中文观看| 国产AV精品国语对白国产| 棉签和冰块怎么弄出牛奶视频| 亚洲VA欧美VA天堂V国产综合| 菠萝菠萝蜜高清观看在线| 美目盼兮amy198281| 亚洲午夜性春猛交XXXX| 国产人妻精品久久久久久很牛| 日本久久不射| bl撅高扒开臀缝哦| 美女被抽插到哭内射视频免费| 亚洲偷自拍精品视频在线观看| 国产美女久久久久久久久久久| 日韩亚洲不卡在线视频| www.亚洲天堂| 男人脱女人衣服吃奶视频| 两个吃奶一个添下面视频| 洲精品无码高潮喷水A片| 美女全光末满18勿进| 99久久做夜夜爱天天做精品| 欧美18在线| 日韩插啊免费视频在线观看| 最新 国产 精品 精品 视频| 久久99精品视频| 亚洲中文无码亚洲人在线观看-| 国产伊人自拍| 亚洲AV无码久久流水呻蜜桃久色| 国产精品2020观看久久| 色姊姊真舒服| 国产VA精品午夜福利视频| 色欲天天天综合网免费| 国产Av影片麻豆精品传媒| 涩涩视频下载| 国产成人免费手机在线观看视频| 色欲AV精品人妻一区二区三区| 动漫美女被吸奶| 肉色无边(高h)| 国产不卡一卡2卡三卡4卡网站|