首页 新闻 会员 周边 捐助

如何优化自己的C#代码,加快程序运行效率?

0
悬赏园豆:20 [已解决问题] 解决于 2010-09-09 19:03

如何优化自己的C#代码,加快程序运行效率?
(1)使用thread后台运行,将其isbackground设为true,可以加快程序运行速度么?
(2)backgroundworker可以很大程度的加快程序运行速度么

niesen111的主页 niesen111 | 初学一级 | 园豆:0
提问于:2010-08-25 16:02
< >
分享
最佳答案
0

你的第一个问题,不知道你有曾经优化win98 winxp的经验没,除了服务器版,操作系统默认都是优化前台程序,所以,如果你想让 background task 得到更多的 cpu 时间,那你需要修改操作系统的优化选项。

提高应用程序运行效率,主要还是从你的逻辑入手,把复杂任务拆分开来,能够利用IOCP的地方就用IOCP,在多CPU或多核机器上,按照核心数把任务分解到每个单独的核心上去执行。

收获园豆:8
Launcher | 高人七级 |园豆:45050 | 2010-08-25 17:22
其他回答(4)
0

说的是多线程吧,winform多线程是必须的,优化代码对应优化逻辑。

收获园豆:2
Astar | 园豆:40805 (高人七级) | 2010-08-25 16:08
0

我觉得一般来说不是这样。

一般客户端程序使用backgroundworker都是为了不阻塞界面线程的运行,虽然理论来说多线程提高了性能,但实际这种情况下的设计并不是考虑性能的。基本上用backgroundworker都是要把事件传送回来的。

假如你是服务器端的程序,你可以能是performance critical的,这个时候你可能要自己设计线程池,最简单的方法就是异步委派asynch delegate。但实际情况比这个复杂的多,thread的话题可以很深,涉及到线程复用以及分布式等等。

另外.net 4里引入了parallel programing,方便利用多个cpu计算。

一般来说如果是桌面程序你不用考虑线程的性能,更多关注代码的优化。

收获园豆:8
浪客Dandy | 园豆:479 (菜鸟二级) | 2010-08-25 16:21
0

看  CLR via C#(第3版) 讲的都是.net 框架的原理、对写出高效率代码很有帮助

收获园豆:2
HUHU慈悲 | 园豆:9973 (大侠五级) | 2010-08-25 17:32
再问一句,C#中哪些方法可以精确计算程序每一步运行多长时间?
支持(0) 反对(0) niesen111 | 园豆:0 (初学一级) | 2010-08-25 20:20
System.Diagnostics.Stopwatch 参考这个: http://www.cnblogs.com/zhuqil/archive/2010/03/01/stopwatch-measure-precise.html
支持(0) 反对(0) HUHU慈悲 | 园豆:9973 (大侠五级) | 2010-08-25 21:16
0

VS 的 Team 版本有Test 功能,可以做性能测试,跟踪程序哪个地方运行耗时。

eaglet | 园豆:17139 (专家六级) | 2010-08-26 07:33
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册