SpeechSynthesizer/WaveHeader 存在严重的内存泄漏
.Net Framework 3.0带了个System.Speech.dll,装个语音包,然后就可以实现文字朗读等功能。最近在使用的时候,发现随着程序的运行,程序占用的内存一直在增长,直到程序崩溃。 用WinDbg抓了个Dump,然后看了下,里面一堆没有释放的SPVTEXTFRAG、AudioDe...
性能的瓶颈到底在那呢?
最近在写c# socket tcp组件碰到一个让我很烦恼事情,秒处理消息总会到一定值的情况产生瓶颈。刚开始大概秒处理2000消息以后会生成瓶颈,经过优化后秒处理消息达到5000后又来了。。。秒处理5000前CPU站用率会在10%内,当到达秒处理消息6000后CPU会涨到60%。。。不知道c# soc...
在微软,最大的乐趣就是可以和偶像亲密接触:)
今天很开心,因为又一次和我的偶像潘爱民聊天了(做IT的朋友们不要告诉我你没有听说过,或者看看http://www.china-pub.com/s/?key1=%c5%cb%b0%ae%c3%f1&type=&pz=1)。昨天我给他发了一封信,给他即将出版的新书《windows内核原理...
时间同步算法与Simple Ring-based election algorithm算法分析
时间同步算法的应用非常广泛。譬如在Unix系统里面,Make命令,只是用来编译新修改过的代码文件。Make命令使用运行的客户端的时钟来决定哪个文件是被修改过的。但是,如果把代码放到文件服务器上面,而运行make命令的主机与文件服务器的时间不同的时候,make命令就有可能工作不正常。譬如玩dota的时...
[译].NET 4 中的 Background & Foreground GC
原文地址 : http://blogs.msdn.com/salvapatuel/archive/2009/06/10/background-and-foreground-gc-in-net-4.aspx CLR 4 中另一个很有意思的新特性来自于 GC 团队。在新版本中,GC 团队对内存分配过程做...
求助:如何使用VS的Profiler跟踪框架内部的方法调用?
解决性能问题必须使用Profiler,无论是自己写的实验代码还是一些高级工具,没有数据,而是凭感觉来解决性能问题在绝大部分情况是不靠谱的。VSTS包含了Profiler,也经常见一些博客上用Profiler得到的数据进行性能分析,其中最著名的莫过于Rico Mariani的Performance Q...
重谈字符串连接性能(上):性能评测
看到这个标题是不是觉得很奇怪呢?字符串连接的性能,这个话题已经被谈了一遍又一遍,一次又一次,似乎已成定论,这又有什么好谈的呢?不过说来奇怪,根据我的实验结果在网上进行搜索,却找不到答案。因此,我现在和大家一起重新再作一次实验并观察结果。在文章最后我也会给出完整的代码,您可以自由地运行,修改,尝试,我...
老赵书托(3):深入理解计算机系统
这次我要推荐的是《Computer Systems: A Programmer’s Perspective》(下文简称CSAPP),在国内可以买到其影印版。它也已经被翻译成为中文,即中国电力出版社的《深入理解计算机系统(修订版)》。 基本知识 如果说我上次推荐的SICP强调的是编程能力,抽象能力的...
reflector 4.2.40 (C#源码) [可成功编译,运行]
此贴已删除...看着有些人说的话,真好笑 博客园...呵呵!! 看来博客园不适合初学者待,也不适合我这样的学生..收起东西走人...
<<易学C#>>全书目录
经过一年之久的创作,我的新书<<易学C#>>终于出版了,目录如下:预备课:学习从这里开始 11.软件=程序+文档 12.程序起什么作用 23.为何要面向对象 24.什么是UML 35..NET与C# 4 谈微软公司的.NET战略 4 C#的产生与特点 5 C#与.NET的关系...
WRK开发调试环境搭建
WRK是什么?它是微软提供给各大学用于研究Windows内核的一套开放的源代码。不久前在网上发现了这份宝贝,下载下来,准备学习一下。在进一步探索这套内核前,首先要让它run起来。 我选择的运行环境是VMWare + Windows2003SP1,辅助工具是WinDbg,将内核双机调试环境搭建起来,这...
[译].NET 4 中玩耍内存映射文件
原文链接 : http://blogs.msdn.com/salvapatuel/archive/2009/06/08/working-with-memory-mapped-files-in-net-4.aspx预备知识 : 本文需要你对 OS 内存管理有一定了解。我想探索下即将到来的 .NET 4...
SSCLI中GC垃圾回收源码分析(2) - GarbageCollect()与Spin Lock
继续接着上篇的分析, F11从Fcall中跳出来,就到了sscli20\clr\src\vm\gcsmp.cpp中关于Garbage Collect的最外部的方法GCHeap::GarbageCollect: HRESULTGCHeap::GarbageCollect (int generatio...
SSCLI中GC源码分析(1) - EE与BCL之间的调用接口FCall
首先在SSCLI2.0源代码的\clr\src\vm\comutilnative.cpp文件中的GCInterface类的CollectGeneration方法上下个断点,该宏方法主要实现了一个调用转换: /*==============================CollectGenerati...
我犯了一个错误,您能指出吗?(结论)
其实许多朋友已经在回复中发现问题所在了,其中最早指出错误的是狼Robot同学,他说: 每个T都会使用一个新的连接。 泛型类中的静态变量会因为T的不同而产生不同的值,也就是说每个T所访问的静态变量都是独立的。 正是这个原因,导致UserRepository和ArticleRepository,虽然似...
MF中使用GPRS:如何通过一个串口终端实现GPRS Modem拨号上网
在.Net micro framework的一个项目的开发过程中,有一个GPRS的Modem。我们在主板上通过串口,提供了5v的电压。 GPRS Modem设计板如图: 我们使用TXD和RXD,对应到另外一块主板芯片上面的COM4,在开始实现GPRS Modem拨号的过程中,我想是使用GSM 7....
老赵谈IL(3):IL可以看到的东西,其实大都也可以用C#来发现
在上一篇文章中,我们通过一些示例谈论了IL与CLR中的一些特性。IL与C#等高级语言的作用类似,主要用于表示程序的逻辑。由于它同样了解太多CLR中的高级特性,因此它在大部分情况下依旧无法展现出比那些高级语言更多的CLR细节。因此,如果您想要通过学习IL来了解CLR,那么这个过程很可能会“事倍功半”...
老赵谈IL(2):CLR内部有太多太多IL看不到的东西,包括您平时必须了解的那些
我一直建议大家不要倾向于学习IL的原因有二: IL能够说明的内容太少,包括大部分.NET“必知必会”。 IL能够获得的信息从高级语言中也大都可以知道。 而这篇文章便是希望通过实例来把第1点解释清楚,而第2点则留给下一篇文章来解释。 在文章开始之前,我先要承认两个错误: 首先,上一篇文章对于“I...
老赵谈IL(1):IL是什么,它又不是什么?那么汇编呢?
我们.NET开发人员必定离不开IL,就算您没有学习,也一定可以在各处看到它的身影。最近在博客园上活跃的IL文章译者包建强同学的一些看法让我大为震惊,决定独立开篇,希望可以让大家看到不同的声音。真理越辩越明,也欢迎大家来一起讨论,发表自己意见。我也会尽量把朋友们留在我博客上的看法汇总起来,并加以回应...
