C_Sharp 板


LINE

寫程式的時候遇到一個問題 由於程式效能的關係 希望需要寫一個兩個一維陣列相乘的程式 目前的程式寫法像是這樣 int []R1=new int[]{1,2,3,4,5,6}; int []R2=new int[]{1,2,3,4,5,6}; int []R3=new int[6]; for (int i=0;i<R1.Length;i++) { R3[i]=R1[i]*R2[i]; 或者是 R3[i]=R1[i]*Math.Sin(i/t);//類似~~ } 由於實際上的陣列長度可能會到五百或一千 用迴圈做的話再處理時間上會花太多時間 會跟不上其它執行緒的處理速度 不知道這部分有沒有什麼方法可以更省時的!! 謝謝>"< --



※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.38.117.9
1F:→ ghostx2:C#沒有 頂多改成Parallel.For() 也要看執行緒架構如何了 06/21 22:02
2F:推 rushaun:http://blog.linym.net/archives/564 06/21 22:39
3F:→ proach:實際上他就是要迴圈,只是怎麼包裝給你看的差別吧? 06/22 09:09
會這樣問是因為如果不知道有Copyto 語法的話 要複製陣列應該就會用迴圈 把值一個一個丟吧!! (至少我之前笨到會這樣) 所以才想問問看有沒有更快能夠做到 陣列相乘的語法 >"< ※ 編輯: chris70211 來自: 114.41.126.177 (06/22 23:09)
4F:→ optimist9266:如果真的要快,用unsafe指標其實會有一些差異 06/25 02:30
5F:→ optimist9266:8123我以前回的文章有用到類似的東西 06/25 02:30
成功將Matlab產生DLL檔並用C#呼叫 但是我的呼叫時間就比迴圈時間多了好幾倍 這部分的問題不知道有沒有辦法克服 我的For迴圈了不起TICKS跑個幾百幾千 呼叫MATLAB語法的時間可能就到萬了QQ ※ 編輯: chris70211 來自: 114.38.120.91 (06/26 23:30) 開頭可能講的不夠清楚 目前是C#做一個信號接收介面 取樣頻率30KHZ以上 然後透過FIR去進行雜訊濾波 FIR的階數可能會用到四五百階 所以相對的會有這樣的需求 雖然可以用執行緒將接收跟濾波同步處理 但因為怕迴圈花費時間大過於取樣頻率 可能會造成系統暫存區爆表 而且濾完雜訊的信號還要再UI做數據或圖像的顯現(雖然不會是大問題) 目前濾波部分大致上是 for int i=0;i<order;i++ Y+=S[i]*Filter[i]; 但這只是一筆資料的輸出 等於我一秒假設有5萬筆資料 階數用到500 我的迴圈就要執行2500萬次的迴圈了!! = =" 不知道各位有沒有什麼好的建議 至於結構 CLASS我真的還要再多研讀了~~目前碰C#只有半年的時間 大多都是在寫介面程式 執行緒的部分在共同資源的部分也還有很多需要學習>"< ※ 編輯: chris70211 來自: 114.38.120.91 (06/26 23:43)
6F:→ ghostx2:一秒5萬,難道不能減少取樣點,平均取1萬之類,不失真為前提 06/27 01:47
7F:→ ghostx2:再者你可以考慮寫在C++製成DLL檔讓C#呼叫,效率有差 06/27 01:50
因為目前的儀器最快能到50KHz的取樣速度,如果降低取樣時間就等於降低 儀器本身的效能了>"< 請問用c++寫dll檔的效能會比matlab高嗎? 因為好像呼叫dll檔的時間就不短了!! 之前呼叫matlab的dll檔大概呼叫時間就要15ms 不知道c++寫成dll檔的話 呼叫時間是否能縮短~~會採用matlab是因為這個迴圈程式 for int i=0;i<order;i++ Y+=S[i]*Filter[i]; matlab只要Y=S*F'就能夠做到了 不過MATLAB實際的運算時間我還沒去觀察~~ 目前能寫到一萬筆資料進行即時濾波 但再高一點好像BUFFER就容易爆掉了QQ ※ 編輯: chris70211 來自: 114.38.119.150 (06/27 21:55)
8F:→ s8911124:可以用matlab call c or c++ (mexfunction) 06/27 23:16
9F:→ s8911124:sorry 看錯= = 06/27 23:19
10F:→ markov:using System.Threading; ? 使用內建的看看? 07/01 22:39
不好意思~~這個是指用Threading的內建語法 可以稍微建議一下什麼語法可以使用嗎? 不太懂這個的意思是什麼>"< ※ 編輯: chris70211 來自: 114.38.120.133 (07/02 00:40)







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:Tech_Job站內搜尋

TOP