• 招生咨詢熱線:4008-569-579 
  • 手機(jī)版
    用手機(jī)掃描二維碼直達(dá)商品手機(jī)版
招生咨詢熱線
4008-569-579
機(jī)構(gòu)主頁 > 培訓(xùn)資料 > 嵌入式開發(fā):嵌入式系統(tǒng)中Python與CC++的比較
機(jī)構(gòu)主頁 > 培訓(xùn)資料>嵌入式開發(fā):嵌入式系統(tǒng)中Python與CC++的比較

嵌入式開發(fā):嵌入式系統(tǒng)中Python與CC++的比較

來源:廣州達(dá)內(nèi)教育        時間:2023-05-30        熱度:48℃        返回列表

  C/C++編程語言在嵌入式系統(tǒng)編程中占據(jù)主導(dǎo)地位,盡管它們有許多缺點(diǎn)。另一方面,Python有許多優(yōu)點(diǎn),使其成為嵌入式開發(fā)的優(yōu)秀語言。讓我們看看每一個利弊,以及為什么你應(yīng)該考慮Python作為嵌入式編程。


  C/C++是編譯語言,而Python是解釋語言。C/C++已經(jīng)存在了很多年;C是1969首次開發(fā)的,1983是C++。Python比Guido

van

Rossum在1989年創(chuàng)建的Python更年輕。從那時起,它就成為最流行的開源編程語言之一。所有Python版本都是開源的,可以自由使用和分發(fā),即使對于商業(yè)項(xiàng)目也是如此。


  Python的情況


  據(jù)相關(guān)研究表明,超過95%的嵌入式開發(fā)中代碼是用C/C++編寫的。對于Python來說,嵌入式系統(tǒng)上的這種遺留問題可能很難克服,但它的屬性和用Python編寫代碼的人數(shù)可能有助于它在未來超越C/C++。


  雖然C/C++編寫速度慢,容易出錯,而且經(jīng)常不可讀,但Python以其可寫性、減少錯誤和可讀性而聞名??勺x性的重要性無論怎樣強(qiáng)調(diào)都不為過:當(dāng)在團(tuán)隊中工作時,可讀性對于維護(hù)代碼至關(guān)重要。除非你愿意花更多的時間和金錢在調(diào)試和質(zhì)量保證上,否則它必須很容易理解。Python的設(shè)計重用遠(yuǎn)遠(yuǎn)超過了C/C++,在當(dāng)今的敏捷環(huán)境中,設(shè)計重用是保持領(lǐng)先還是落后于競爭對手的區(qū)別。


  嵌入式算法變得越來越復(fù)雜。簡單的控制循環(huán)正被神經(jīng)網(wǎng)絡(luò)和其他幫助Python站穩(wěn)腳跟的復(fù)雜過程所取代。雖然Theano主要是用C/C++編寫的,但Python用于以人性化的方式與高性能庫進(jìn)行接口。Python庫正在蓬勃發(fā)展PyPI,Python包索引,有超過80000個模塊,這些龐大的匯編讓嵌入式開發(fā)人員可以選擇跳過幾個步驟,在自己的代碼中使用已經(jīng)建立的函數(shù),從而極大地提高了生產(chǎn)率。




  C/C++的情況


  C/C++的情況非常明顯:它創(chuàng)建了更緊湊、更快的運(yùn)行時代碼,并且它已經(jīng)是95%嵌入式系統(tǒng)代碼的首選語言。雖然Python在運(yùn)行時的效率可能不如C/C++,但在開發(fā)過程中它的效率要高得多。解釋器讀取每一行代碼,解析它,執(zhí)行運(yùn)行時檢查和調(diào)用例程,以便執(zhí)行代碼中的操作。這比運(yùn)行C/C++代碼要活躍得多,在C/C++代碼中,同一行代碼可能只編譯成兩條指令。這會導(dǎo)致Python運(yùn)行速度變慢,能耗增加。


  提高Python的速度


  因此,與C/C++相比,Python的主要缺點(diǎn)是它的運(yùn)行速度,但是有幾種方法可以優(yōu)化代碼,使其運(yùn)行更高效。除了像Theano這樣的庫之外,還有像Cython這樣的Python優(yōu)化擴(kuò)展,具有靜態(tài)類型和關(guān)鍵字,可以更快地運(yùn)行數(shù)學(xué),輕松地編譯為C/C++并以C/C++的速度運(yùn)行。JIT編譯器是提高Python運(yùn)行速度的另一個好方法,這個編譯器與Python的解釋器并行工作,為循環(huán)中的代碼生成已編譯的機(jī)器指令,使解釋器的后續(xù)傳遞執(zhí)行得更快。pypyjit編譯器能夠?qū)ython的執(zhí)行速度提高近兩倍。但是,JIT編譯器應(yīng)該只在有足夠空間的情況下使用,而嵌入式開發(fā)系統(tǒng)通常不會有太多的空閑空間。最好的優(yōu)化是使用更好的數(shù)據(jù)結(jié)構(gòu)和算法,但這是軟件設(shè)計和實(shí)現(xiàn)中最困難的任務(wù),因此最好使用上述工具之一,具體取決于你的技能水平。


  使用Python與嵌入式系統(tǒng)通信


  當(dāng)Python被用作用戶和他們正在使用的嵌入式系統(tǒng)之間的通信中間時,它可能是最強(qiáng)大的。通過Python向嵌入式系統(tǒng)發(fā)送消息或從嵌入式系統(tǒng)發(fā)送消息允許用戶自動化測試。Python腳本可以將系統(tǒng)置于不同的狀態(tài),設(shè)置配置,并測試各種真實(shí)世界的用例。Python還可用于接收可存儲用于分析的嵌入式系統(tǒng)數(shù)據(jù)。然后,程序員可以使用Python開發(fā)參數(shù)和其他分析數(shù)據(jù)的方法。


  目前,關(guān)于Python和C/C++優(yōu)點(diǎn)的主要爭論歸結(jié)為對您的團(tuán)隊更重要的東西:開發(fā)速度還是運(yùn)行時速度。不過,在未來,可能不需要Python程序員來證明它在嵌入式系統(tǒng)中的應(yīng)用,而需要嵌入式開發(fā)人員來考慮如何適應(yīng)Python不斷增長的流行。

電話咨詢

電話咨詢

咨詢電話:
4008-569-579
回到頂部

回到頂部