在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

英創(chuàng)信息技術(shù)C#調(diào)用COM組件的效率分析概述

英創(chuàng)信息技術(shù) ? 來源:英創(chuàng)信息技術(shù) ? 作者:英創(chuàng)信息技術(shù) ? 2019-11-15 09:06 ? 次閱讀

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

實驗硬件環(huán)境

英創(chuàng)EM9161工控主板+ETA102數(shù)采模塊

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

軟件 VS2005 C#
一次COM組件調(diào)用時間 17us

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


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 嵌入式主板
    +關(guān)注

    關(guān)注

    7

    文章

    6097

    瀏覽量

    36155
收藏 人收藏

    評論

    相關(guān)推薦
    熱點推薦

    創(chuàng)支持Linux高級客戶自行移植內(nèi)核

    上市)  該項服務(wù)具體說明和實施流程參見:支持客戶進(jìn)行Linux移植  需要該服務(wù)的客戶需與創(chuàng)簽訂技術(shù)保密協(xié)議,并承諾嚴(yán)格履行協(xié)議:創(chuàng)
    發(fā)表于 01-18 13:52

    C#教程之調(diào)用Outlook發(fā)送郵件

    C#教程之調(diào)用Outlook發(fā)送郵件,很好的C#資料,快來學(xué)習(xí)吧。
    發(fā)表于 04-20 15:27 ?4次下載

    創(chuàng)信息技術(shù)利用COM組件遠(yuǎn)程更改設(shè)備配置文件的流程

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

    創(chuàng)信息技術(shù)ARM9工控板串口設(shè)備的COM組件應(yīng)用

    創(chuàng)公司的ARM9工控主板產(chǎn)品均預(yù)裝了Windows CE5.0操作系統(tǒng),支持包括EVC、C#、VB、LabView等多種開發(fā)工具。
    的頭像 發(fā)表于 11-05 10:07 ?2037次閱讀

    創(chuàng)信息技術(shù)C#使用COM組件接口操作精簡ISA總線淺談

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

    創(chuàng)信息技術(shù)CAN接口COM組件C#語言領(lǐng)域應(yīng)用

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

    創(chuàng)信息技術(shù)C#使用COM組件接口進(jìn)行串口操作介紹

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

    創(chuàng)信息技術(shù)WinCE平臺C#例程要點介紹

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

    創(chuàng)信息技術(shù)C#通過串口讀取GPS模塊定位數(shù)據(jù)的方法

    的高精度、全天候、全球覆蓋、方便靈活和優(yōu)質(zhì)價廉所吸引。在嵌入式產(chǎn)品的開發(fā)應(yīng)用中,很多領(lǐng)域都涉及到GPS導(dǎo)航和定位的應(yīng)用;創(chuàng)的很多用戶,就是在創(chuàng)的嵌入式主板的基礎(chǔ)上,外接GPS應(yīng)用模
    的頭像 發(fā)表于 01-14 11:33 ?3164次閱讀
    <b class='flag-5'>英</b><b class='flag-5'>創(chuàng)</b><b class='flag-5'>信息技術(shù)</b><b class='flag-5'>C#</b>通過串口讀取GPS模塊定位數(shù)據(jù)的方法

    創(chuàng)信息技術(shù)C#啟動和關(guān)閉外部進(jìn)程的方法介紹

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

    創(chuàng)信息技術(shù)嵌入式系統(tǒng)設(shè)備驅(qū)動接口的C#編程

    的驅(qū)動程序,用戶只需直接調(diào)用相應(yīng)的接口函數(shù)即可實現(xiàn)。 在使用C#進(jìn)行應(yīng)用程序開發(fā)時,由于C#無法使用C++的靜態(tài)庫函數(shù),對于一些流式驅(qū)動設(shè)備,比如ISA,GPIO,WDT,CAN,SP
    的頭像 發(fā)表于 01-15 11:29 ?1557次閱讀

    創(chuàng)信息技術(shù)嵌入式系統(tǒng)通訊線程的C#編程方法

    在使用創(chuàng)ARM9系列嵌入式主板的COM口,CAN口,網(wǎng)口時,一般會使用到timer或線程來實現(xiàn)數(shù)據(jù)的接收。使用timer控件較為方便,通過InterVal值來設(shè)定調(diào)用間隔,但是靈活性
    的頭像 發(fā)表于 01-15 11:25 ?1477次閱讀

    創(chuàng)信息技術(shù)C/C#開發(fā)基于WEC7的CAN通訊介紹

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

    創(chuàng)信息技術(shù)JAVA操作創(chuàng)主板SPI接口簡介

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

    創(chuàng)信息技術(shù)JAVA操作創(chuàng)主板I2C接口簡介

    資源,創(chuàng)提供了Java硬件支持包,主要支持的工控接口有:以太網(wǎng)、串口、CAN、GPIO、SPI、I2C、RTC等。本文主要介紹使用Java語言調(diào)用
    的頭像 發(fā)表于 02-06 11:06 ?1932次閱讀
    <b class='flag-5'>英</b><b class='flag-5'>創(chuàng)</b><b class='flag-5'>信息技術(shù)</b>JAVA操作<b class='flag-5'>英</b><b class='flag-5'>創(chuàng)</b>主板I2<b class='flag-5'>C</b>接口簡介
    主站蜘蛛池模板: 人人插人人爱 | 色wwwww| 永久影视 | 欧美xxxx性特级高清 | 丁香花免费观看视频 | 开心激情婷婷 | 日日摸夜夜爽夜夜爽出水 | 伊人小婷婷色香综合缴缴情 | 拍拍拍美女黄色1000视频 | 中文字幕在线一区 | 亚洲午夜久久久精品影院视色 | 天堂资源在线播放 | 女a男o肉文 | 最新欧美精品一区二区三区 | 曰曰摸天天摸人人看久久久 | 天天摸天天 | 国产伦精品一区二区三区四区 | 亚洲高清成人 | 视频网站免费 | 一区二区不卡免费视频 | 亚洲伦理一区 | 天天操夜夜添 | 天天骑天天射 | 亚洲一区亚洲二区 | 天天躁夜夜躁狠狠躁2024 | 69日本xxxhd| 美女被拍拍拍拍拍拍拍拍 | 天天看天天干天天操 | 97综合网| 免费一区二区视频 | 国产精品高清一区二区三区 | 一级毛片黄色 | 手机看片日韩福利 | 成人sese| 222网站高清免费观看 | 久久这里只有精品免费播放 | 色妞基地| 欧美成人午夜毛片免费影院 | 亚洲一区二区三区电影 | 欧美大色网 | 下农村女人一级毛片 |