精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

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

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

3天內不再提示

英創信息技術C#調用COM組件的效率分析概述

英創信息技術 ? 來源:英創信息技術 ? 作者:英創信息技術 ? 2019-11-15 09:06 ? 次閱讀

.NET Framework是Microsoft為跨平臺開發應用程序而創建的一個富有革命性的平臺。為了實現其跨平臺開發的目標,.NET Framework采用了不同于傳統的應用程序編譯模式,例如:在VS2003/VS2005/VS2008編譯.NET Framewrok所編寫的代碼時,不是立即創建操作系統特定的本機代碼,而是把代碼編譯為Microsoft中間語言(Microsoft Intermediate Language,MSIL),這些代碼不專用于任何一種操作系統,也不專用于C#;要執行應用程序,是Just-In-Time(JIT)編譯器的任務,它把MSIL編譯為專用于OS和目標機器結構的本機代碼。
這樣,帶來的好處是顯而易見的,它使得Studio.NET這樣的開發工具不僅可以開發PC桌面應用程序,而且還可以開發WinCE應用程序,未來還可以支持更多的應用平臺;但是,一個硬幣都有兩面,我們還是要懷疑一下這種模式的應用效率。為此我們通過在VS2005 C#開發的調用COM組件的應用程序做了實驗。
實驗使用英創EM9161嵌入式主板(主頻200MHz)和ETA102數采模塊采集外部10個通道電壓。采用兩種模式:
(1)在C#應用程序里面直接編寫采集AD的函數。因為ETA102數據采集模塊直接與EM9161的精簡ISA總線連接,通過英創的ISA總線進行采集控制。英創提供了ISA總線接口的COM組件,所以該直接用C#編寫的函數將反復調用ISA COM組件,大略統計采集一次數據將調用COM組件函數50次左右。
(2)用eVC編寫采集AD的應用代碼,然后將該代碼統一打包成一個COM組件,在C#的應用程序直接調用該COM組件函數使用,也就是說,進行一次數據采集只調用一次COM組件函數。
如上兩種模式,實現的目的和功能完全一致,我們將數據采集的次數延長,比如采集幾千次AD數據,然后統計所花費的時間,發現方式(1)所耗費的時間數倍于采用方式(2),我們得到一個簡單結論,C#調用COM組件的效率較低,反復調用COM組件大量地消耗了系統資源和時間。為此,我們進行了簡單的計算。為了計算的參照性,我們引用了eVC同樣的應用程序執行數據采集所花費的時間作為參考時間。那么,可以這樣認為:
程序運行總時間 = 花費在實際數據采集的時間+COM組件消耗的時間+其它系統小開銷
其中,“其它系統小開銷”在數據采集次數足夠多的情況下,可以忽略不計,“花費在實際數據采集上的時間”采用eVC應用程序所得到的數據,那么,我們可以對方式(1)和(2)進行一個簡單計算,實際結果是:方式(1)和方式(2)得到的調用一次COM組件應用函數所耗費的時間均是17us,結果驚人的一致。

實驗硬件環境

英創EM9161工控主板+ETA102數采模塊

CPU:32位ARM9(ARM926EJ-S內核),主頻:200MHz

軟件 VS2005 C#
一次COM組件調用時間 17us

根據上述實驗,我們可以得到在.NET Framework環境C#應用程序開發中COM組件的調用效率原則:即COM組件功能本身的執行時間應大于17us,才可能保證C#應用程序具有較高的執行效率。例如在方式(1)中,每次ISA總線執行的時間只有0.5us,因此若在C#程序中通過反復進行ISA總線的COM組件調用,則實際代碼效率就肯定很低;而在方式(2)中,采用專門的AD采集COM組件,可實現一次采集多個樣點,每個樣點的采集時間為45us,因此,若C#在調用該COM組件時,采用一次采集10個樣點的策略,則可獲得很高的代碼效率。總之,為了保證使用C#等“高級”語言(其他的類似語言有.NET VB、LabView等)進行應用開發的時候具有合理的代碼執行效率,對需反復大量調用COM組件函數應仔細了解COM組件函數的實際執行時間,對執行時間小于17us的函數,需特別謹慎,否則將耗費大量系統資源。


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

    關注

    7

    文章

    6085

    瀏覽量

    35214
收藏 人收藏

    評論

    相關推薦

    支持Linux高級客戶自行移植內核

    上市)  該項服務具體說明和實施流程參見:支持客戶進行Linux移植  需要該服務的客戶需與簽訂技術保密協議,并承諾嚴格履行協議:
    發表于 01-18 13:52

    C#教程之調用Outlook發送郵件

    C#教程之調用Outlook發送郵件,很好的C#資料,快來學習吧。
    發表于 04-20 15:27 ?4次下載

    信息技術利用COM組件遠程更改設備配置文件的流程

     COM(Component Object Model),即組件對象模型,是微軟公司開發的一種新的軟件開發技術,Microsoft的許多技術,如ActiveX、DirectX、以及OL
    的頭像 發表于 11-04 09:48 ?1302次閱讀
    <b class='flag-5'>英</b><b class='flag-5'>創</b><b class='flag-5'>信息技術</b>利用<b class='flag-5'>COM</b><b class='flag-5'>組件</b>遠程更改設備配置文件的流程

    信息技術ARM9工控板串口設備的COM組件應用

    公司的ARM9工控主板產品均預裝了Windows CE5.0操作系統,支持包括EVC、C#、VB、LabView等多種開發工具。
    的頭像 發表于 11-05 10:07 ?1735次閱讀

    信息技術C#使用COM組件接口操作精簡ISA總線淺談

    ARM9工控主板的數據采集功能通常采用板上的GPIO實現數字輸入輸出、通過精簡ISA總線擴展相應的外部控制電路(如控制繼電器或AD或DA實現模擬數據的輸入輸出等)。
    的頭像 發表于 11-12 10:24 ?1572次閱讀
    <b class='flag-5'>英</b><b class='flag-5'>創</b><b class='flag-5'>信息技術</b><b class='flag-5'>C#</b>使用<b class='flag-5'>COM</b><b class='flag-5'>組件</b>接口操作精簡ISA總線淺談

    信息技術CAN接口COM組件C#語言領域應用

     ARM9工控主板的一個很大的特色就是提供了標準的CAN總線通訊接口,客戶可以方便地在工業現場、汽車、船舶等等領域進行CAN通信應用。由于ARM9嵌入式主板采用WinCE操作系
    的頭像 發表于 11-12 10:34 ?2413次閱讀
    <b class='flag-5'>英</b><b class='flag-5'>創</b><b class='flag-5'>信息技術</b>CAN接口<b class='flag-5'>COM</b><b class='flag-5'>組件</b>在<b class='flag-5'>C#</b>語言領域應用

    信息技術C#使用COM組件接口進行串口操作介紹

    通訊的時候,往往是需要對RTS進行設置的。為了解決這個問題,公司現在提供了操作串口的COM組件接口;用戶只需要在目標平臺上進行組件注冊,
    的頭像 發表于 11-14 09:37 ?2266次閱讀
    <b class='flag-5'>英</b><b class='flag-5'>創</b><b class='flag-5'>信息技術</b><b class='flag-5'>C#</b>使用<b class='flag-5'>COM</b><b class='flag-5'>組件</b>接口進行串口操作介紹

    信息技術WinCE平臺C#例程要點介紹

    嵌入式ARM9主板采用微軟的Windows CE操作系統,可以采用eVC或者VS2005進行應用開發。C#作為一種簡單易用的編程語言工具,由于其在結構構建和API界面上的優勢,受到廣大客戶的喜愛,并為很多用戶所選用。為了讓廣
    的頭像 發表于 11-15 10:01 ?2091次閱讀
    <b class='flag-5'>英</b><b class='flag-5'>創</b><b class='flag-5'>信息技術</b>WinCE平臺<b class='flag-5'>C#</b>例程要點介紹

    信息技術C#通過串口讀取GPS模塊定位數據的方法

    的高精度、全天候、全球覆蓋、方便靈活和優質價廉所吸引。在嵌入式產品的開發應用中,很多領域都涉及到GPS導航和定位的應用;的很多用戶,就是在的嵌入式主板的基礎上,外接GPS應用模
    的頭像 發表于 01-14 11:33 ?2781次閱讀
    <b class='flag-5'>英</b><b class='flag-5'>創</b><b class='flag-5'>信息技術</b><b class='flag-5'>C#</b>通過串口讀取GPS模塊定位數據的方法

    信息技術C#啟動和關閉外部進程的方法介紹

    許多用戶在程序開發過程中需要使用C#啟動一個外部程序(進程),在使用完畢該外部程序后,又希望能將其關閉。我們特在此對C#啟動和關閉外部進程的方法進行一個簡單的介紹。 C#啟動外部程序(進程)有兩種
    的頭像 發表于 01-14 14:36 ?1211次閱讀

    信息技術嵌入式系統設備驅動接口的C#編程

    的驅動程序,用戶只需直接調用相應的接口函數即可實現。 在使用C#進行應用程序開發時,由于C#無法使用C++的靜態庫函數,對于一些流式驅動設備,比如ISA,GPIO,WDT,CAN,SP
    的頭像 發表于 01-15 11:29 ?1273次閱讀

    信息技術嵌入式系統通訊線程的C#編程方法

    在使用ARM9系列嵌入式主板的COM口,CAN口,網口時,一般會使用到timer或線程來實現數據的接收。使用timer控件較為方便,通過InterVal值來設定調用間隔,但是靈活性
    的頭像 發表于 01-15 11:25 ?1271次閱讀

    信息技術C/C#開發基于WEC7的CAN通訊介紹

    EM335x工控主板,使用的Cortex-A8及WEC7操作系統。本文以EM335x工控主板光盤例程為例,簡單介紹一下CC#代碼如何調用
    的頭像 發表于 01-17 10:01 ?2664次閱讀
    <b class='flag-5'>英</b><b class='flag-5'>創</b><b class='flag-5'>信息技術</b><b class='flag-5'>C</b>/<b class='flag-5'>C#</b>開發基于WEC7的CAN通訊介紹

    信息技術JAVA操作主板SPI接口簡介

    資源,提供了Java硬件支持包,主要支持的工控接口有:以太網、串口、CAN、GPIO、SPI、I2C、RTC等。本文主要介紹使用Java語言調用
    的頭像 發表于 02-06 11:09 ?1881次閱讀
    <b class='flag-5'>英</b><b class='flag-5'>創</b><b class='flag-5'>信息技術</b>JAVA操作<b class='flag-5'>英</b><b class='flag-5'>創</b>主板SPI接口簡介

    信息技術JAVA操作主板I2C接口簡介

    資源,提供了Java硬件支持包,主要支持的工控接口有:以太網、串口、CAN、GPIO、SPI、I2C、RTC等。本文主要介紹使用Java語言調用
    的頭像 發表于 02-06 11:06 ?1652次閱讀
    <b class='flag-5'>英</b><b class='flag-5'>創</b><b class='flag-5'>信息技術</b>JAVA操作<b class='flag-5'>英</b><b class='flag-5'>創</b>主板I2<b class='flag-5'>C</b>接口簡介