2010年1月25日

摘要: 双核sinZGallop过生日,跑过去发现他在研究《编程之美》里面那个让CPU占用率成正弦曲线变化的代码。但原代码只能在单核里实现,稍微改了一下现在双核也能跑了(算法并不像想象的那样简单,可以尝试一下:-)Serialization今天看了C#的Serialization,朕龙颜大悦~~ :-P现在对象可以直接和硬盘上的文件交换了(更确切地说,一个对象可以很简单的变成一个stream,或者反之),... 阅读全文
posted @ 2010-01-25 22:24 grapeot 阅读(185) 评论(0) 推荐(0) 编辑
摘要: 在写完一个类之后,做一下测试是在所难免的。这个文想讨论一下以往个人采用的一些做测试的方法,并从他们的优劣之处加以比较。只是需要注意的是,这里的测试和调试的含义并不相同。测试主要针对于整个类,打进去输入看看输出对不对,在这篇文里它仅仅是一个check的过程。至于调试,则发生在测试失败时,此时就需要跟踪到类的内部逻辑中去,看一条条语句是如何执行的。二者的概念和所应用的工具都是不同的。当然,这两者也没有... 阅读全文
posted @ 2010-01-25 22:23 grapeot 阅读(296) 评论(0) 推荐(0) 编辑
摘要: 用C#写程序的时候,每每一开程序就占用20MB+的内存,写个稍微复杂一点的WPF程序就占到100+MB。相比之下,用MFC写的程序占用的内存则相当少,20+MB的内存占用就比较多了。这点曾让我相当头疼,毕竟内存占用也是衡量程序质量的一个比较重要的指标。在读了"C# 3.0 in a nutshell"后,终于明白了是怎么回事。Garbage Collector并不是每时每刻都在回收垃圾的,尤其是对... 阅读全文
posted @ 2010-01-25 22:18 grapeot 阅读(4148) 评论(0) 推荐(1) 编辑
摘要: 用C#实现一个图像边缘检测算法,处理一个300*375的图片竟然用了2.38s,吐血。用VSTS的代码分析工具发现,GDI+里面的GetPixel()这个函数竟然占用了运行时间的53.92%而SetPixel()占用了7.14%,光是图像的读入和输出就占了60%+(见图1)。这样的速度可受不了。稍微分析一下就能得出原因,Bitmap是一个通用类,可以用来处理多种图像格式,因此GetPixe()l和... 阅读全文
posted @ 2010-01-25 22:14 grapeot 阅读(764) 评论(0) 推荐(0) 编辑
摘要: 有一个很经典的概率问题是羊与车问题,大意是在一个游戏中有三个门,只有一个门后面有车,另外两个门后面是羊。你想要车,但你不知道哪一个门后面有车。主持人让你随便选了一个门。比如说,你选择了1号门。但你还不知道你是否选到了车。然后主持人打开了另一扇门,比如3号。你清楚地看到3号门后面是一只羊。现在主持人给你一个改变主意的机会。请问你是否会换选成2号门?(更详细的问题描述与历史探寻请参见http://ww... 阅读全文
posted @ 2010-01-25 22:11 grapeot 阅读(585) 评论(0) 推荐(0) 编辑
摘要: 由于历史原因,很多时候我们的代码并不完全是使用.NET写成的。这时候和以往C++代码的混合编程就显得相当重要了。最近碰到了这样的问题,将方法简要记述如下。调用简单的C++函数要在C#代码中调用C++函数,大体的思路是这样的:首先将C++函数写成DLL形式的库,然后在C#中导入DLL中的函数进行调用。具体的代码类似这样:C++代码:[代码]C#代码:(导入函数部分,写在调用函数所在类中)[代码]s其... 阅读全文
posted @ 2010-01-25 22:07 grapeot 阅读(26608) 评论(3) 推荐(5) 编辑
摘要: 前两天给小学妹阐述了一下本校计算机科学与技术专业本科生需要掌握的知识体系。自觉比较有道理,整理一下发上来。适合的阅读对象:刚进入计算机系,对整个计算机科学技术的知识体系尚未了解的同学。本校学生获益尤大。整个计算机科学就像人一样,有两条腿。一条叫做数学(基础),一条叫做物理(基础)。数学主要指的是数理逻辑。其中比较重要的是形式逻辑系统、Turing论题和Churcher论题。形式逻辑系统用逻辑的方法... 阅读全文
posted @ 2010-01-25 21:50 grapeot 阅读(5842) 评论(0) 推荐(2) 编辑

导航