C_Sharp 板


LINE

请问各位版友 最近小弟在撰写视窗程式搭配摄影机 原本预期每秒可以达30张frame(我开了两个都是640*480的视窗) 但是在实作了一些演算法後 每秒的frame数变成只有15 虽然对於人眼看起来是没差 但是总想将程式变成最佳化 我目前的做法有: 1.演算法的部分尽量使用C/C++函式库 2.回圈改成foreach或是parallel.foreach 3.用指标格式去access每张影像中的pixel 目前有想到可以更有效率的的是使用thread 另开一个thread去处理演算法 但是对thread还不熟也还在研究中 不知道其他版友们有什麽更高效率的作法呢? 谢谢 --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.118.20.62
1F:→ diabloevagto:演算法有emgu能用,或是c++的opencv 06/16 21:18
2F:→ diabloevagto:用那些会比自己写快非常多 06/16 21:19
3F:→ diabloevagto:不知道用emgu或是opencv+呼叫dll 06/16 21:19
4F:→ diabloevagto:那个会比较快 06/16 21:19
5F:→ million31406:diablo大 我也有使用emgu 不过它有用invoke方式呼叫 06/16 21:25
6F:→ million31406:opencv的函式 所以可能一样吧 我猜 06/16 21:25
7F:推 Hermite:跳frame做 thread 演算法重新看一下设计 这样太慢了 06/16 22:02
8F:→ Hermite:另外你可以先resize 降到320*240来做 不然loading也太重 06/16 22:04
9F:→ Hermite:2张640*480 30FPS 如果演算法或流程不够好 难免会掉frame 06/16 22:05
10F:→ Hermite:不然你只能采GPU加速或者是看chip有没有function支援 06/16 22:06
11F:推 chchwy:先用profiler找出瓶颈在哪里,再去针对瓶颈优化效能 06/16 22:41
12F:→ chchwy:用人脑猜测多半都会猜错,做了改善有限的优化。 06/16 22:42
13F:→ million31406:h大 你说的跳frame作thread指的是每n个frame 06/16 22:51
14F:→ million31406:透过thread执行演算法吗? 06/16 22:51
15F:→ million31406:ch大谢谢提供关键字 06/16 22:52
16F:推 Laluth:google unsafe c# 可能有帮助 06/17 00:35
17F:推 IKAFIRE:foreach和for比起来不会比较快,只是比较好看 06/17 02:02
18F:→ bbcust:会比较快 楼上别乱说 不信去跑个10万次回圈看时间 06/17 03:36
19F:推 IKAFIRE:楼上,因为10万次分不出胜负,所以我加码到了一亿次 06/17 13:57
20F:→ IKAFIRE:http://ppt.cc/zUJV 06/17 13:57
21F:→ IKAFIRE:跑了几次,平均约莫是for:300ms,foreach:700ms 06/17 13:59
22F:→ IKAFIRE:还是我这测试写得不好,请您多多指教 06/17 14:00
23F:→ million31406:谢谢 la大 也许我的演算法可以用指标改写 06/17 16:15
24F:→ million31406:ik大!! 我一直以为foreach会比较快耶@@ 之前也是有 06/17 16:15
25F:→ million31406:看到别人用数据跑是foreach比较快 可是看到你的结果 06/17 16:16
26F:→ million31406:我矛盾了@@ why!!! 06/17 16:16
27F:→ s3748679:给I大,帮修正: http://ideone.com/SkdJL 06/17 19:15
28F:→ s3748679:次数为一千万次.. Milliseconds修正为TotalMilliseconds 06/17 19:15
29F:→ s3748679:再大我家会error 06/17 19:16
30F:推 gundan:Millisecond是当下的毫秒时间,用totalmilliseconds才对! 06/18 01:46
31F:推 IKAFIRE:感谢指教,没注意到少了Total会把头砍掉,而且StopWatch也 06/18 01:56
32F:→ IKAFIRE:比DateTime适合测量时距,受教了 06/18 01:56
33F:→ IKAFIRE:我用s大的内容跑起来变成两个互有输赢,for小胜但胜得很少 06/18 01:58
34F:→ IKAFIRE:我对foreach的理解是:遍历时会多一笔IEnumerator的开销 06/18 02:08
35F:→ IKAFIRE:所以通常速度会<=for回圈,除非遇到linked list之类的资料 06/18 02:09
36F:→ IKAFIRE:结构foreach才比较有效率上的优势,这样的理解有误吗? 06/18 02:09
37F:推 s3748679:刚google後的内容,可以参考看看: http://ppt.cc/uJ9f 06/18 02:24
38F:→ s3748679:补充一下: 我本身也不清楚.. 所以找找资料看看有无帮助 06/18 02:25
39F:→ Litfal:不要拿效能作为选择for或foreach的指标,只是舍本逐末 06/18 14:02
40F:→ Litfal:若你用SetPixel来控制图片,请优先考虑直接访问记忆体 06/18 14:11
41F:→ bbcust:之前我测的时候二者差异foreach比for快得有点明显 06/18 14:24
42F:→ bbcust:刚刚我再直接拿s3748679 source来跑 06/18 14:24
43F:→ bbcust:还是foreach比较快 但是快得幅度很小 大概快个100ms 06/18 14:25
44F:→ bbcust:不过这次的测试差异就很小 06/18 14:26
45F:→ Litfal:真要提for的话,请在编译最佳化下直接执行程式(Ctrl+F5) 06/18 14:34
46F:→ Litfal:以你们提供的例子而言,差距应该几乎消失了 06/18 14:34
47F:→ Litfal:微观的话,包含IEnumerator的实作方式,for给定的边界条件 06/18 14:37
48F:→ Litfal:都会影响for/foreach的效能,但大多数情况下不会是瓶颈所在 06/18 14:38
49F:→ Litfal:例如你们用i<array.Length作for的边界检查 06/18 14:40
50F:→ Litfal:你怎麽知道get Length属性不会有效能损失? 06/18 14:41
51F:→ Litfal:回到主题,在进行优化之前,最好先找到瓶颈在哪 06/18 14:47
52F:→ Litfal:看你是想要用工具还是用Watch物件切块计时,都可以 06/18 14:47
53F:→ Litfal:但我的话,下一步会是把输入/处理/输出的segment分开来 06/18 15:04
54F:→ Litfal:然後使用Pipeline模式 06/18 15:05
55F:→ s3748679:依L大观点来讲,倒是认为在瓶颈处先看看有无机会降低 06/18 17:24
56F:→ s3748679:时间复杂度。 06/18 17:24
57F:→ s3748679:当然以原Po的例子,可能不是这方面的问题@@" 06/18 17:27
58F:→ million31406:谢谢各位提出的观点让我受益良多 再经过这几天的 06/18 18:32
59F:→ million31406:survy 目前倾向於尝试thread 把演算法丢给work 06/18 18:33
60F:→ million31406:thread 处理 UI thread还是只撷取/显示画面 06/18 18:33
61F:→ million31406:效果如何 再跟各位分享 06/18 18:34
62F:→ million31406:litf大提出的关键字 pipeline我先google查资料 thx! 06/18 18:35







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灯, 水草

请输入看板名称,例如:BuyTogether站内搜寻

TOP