|
本帖最后由 doocoo 于 2011-12-22 03:25 编辑
很简单,两个按钮,一个标签,一个文本框。
文本框用来跟踪运行情况,标签显示结果,两个按钮分别是单线程和多线程测试。
算法也很简单,给一段文字,然后循环1000万次计算MD5。
有什么感慨呢?
一是多线程程序真TM难写。这还是C#写的,要是C++估计难十倍不止。
二是多线程真的很有用。单线程的运行时间比多线程高出4-5倍。而且即便是单线程,也不会影响其它程序的运行。
三是Windows对CPU的调度很有意思,似乎对单线程的应用,也是在各个核心间分摊计算。但是又不平均,不知道是什么机制。
结论是:
多核以及超线程对性能提升很大。但是编写相当困难。线程间的交互尤其困难。要开发充分利用多核处理器能力的应用程序真不容易。
我打算优化一下,增加一些测试方法。放出来给大家试试。 |
|