我使用各种语言来实现华容道的破解,目的是看看各个语言的编程效率以及执行时间。
所有的版本都是从C#版本演变过来的,可以参见下面
http://blog.csdn.net/robinspada/article/details/79354500
执行时间
编译性语言:还是C++最快,C#和java大概是慢在字符串的处理上,C++基本不需要处理多字节
解释性语言:chrome js v8引擎比其他的快点,不过差距不是很大。不过没有想到php比js还慢。整体来说比编译性语言慢10-30倍
编程效率
这里谈的是移植的效率,除了C++,其他的都是现代语言,没有指针,移植起来都差不多,要花费2-3小时
C++的指针差不多忘光了,花了大半天,踏上了MFC的坑,被卡了好长时间,还有unicode的问题也花了不少时间,主要是太长时间没有使用过了。
代码看起来,C#的最优雅,速度也很快了,.net用起来比MFC舒服。java在语言层面上落后C#,代码没有C#好看
关于速度
下面是N年前有人用C++写的华容道的执行时间,居然只要12毫秒,我把MFC版的稍作优化,最快也只有14毫秒,而且机器比他的好很多,确实让人沮丧,估计是MFC的哈希表性能不好。不过他写的代码可读性实在是太糟糕,而且太复杂,如果单纯追求速度,不如用汇编来写。
//----本程序在C++Builder6.0及VC++6.0中调试通过----
//----程序名称:"华容道之哈希算法"搜索----
//----程序设计:许剑伟----
//----最后修改时间:2006.10.22----
//----速度:横刀立马12毫秒(P2.4G机器)