System
文章平均质量分 75
davemin
彻底的程序员
展开
-
设计Public API
为Library设计Public API, 是一件非常困难的事。设计Public API, Interface, 命名API, Interface 相当于给你的小孩取名一样。主要原则是:1. 易简单2. 名字易清晰可以稍微长一点,而不让使用这个API的程序员糊涂。用长度来换取清晰,是可取的。4. 通用方式Action + ObjectAction + 形容词 + ObjectAct原创 2006-05-10 18:06:00 · 1146 阅读 · 0 评论 -
内存池性能优化 固定内存块使用 之 链表实现
本篇就: 固定内存块使用 作一定分析,并提供链表实现作为实例说明.然, 对于内存申请方面的优化, 本篇可能只能作为一种补充或者只能是一种特殊情况的特殊应用而已, 而并非完全的解决之道. 上接:内存池性能研究: http://blog.csdn.net/davemin/archive/2008/09/10/2910770.aspx 问题:实现A:BYTE* pBuffer1 = new原创 2008-09-19 14:38:00 · 1001 阅读 · 1 评论 -
CRITICAL_SECTION 对性能的影响 VC十年技术群聊天笔记
阿呆:我这几天在准备一个文字. 是关于: 烂用CRITICAL_SECTION 对性能的影响问题. 特别是服务器端程序.也许本群很多人都觉得自己会使用CRITICAL_SECTION 对象. 不错. 这很好.但我可以坦白的话,你们所有的使用几乎都是在降低性能. 有更好的方法可以少降低性能而达到使用CRITICAL_SECTION 对象的目的.很多人在多线程的程序中使用CRITICAL_原创 2009-06-16 10:13:00 · 2060 阅读 · 4 评论 -
内存池VC实现 VC十年技术群聊天笔记
以下内容摘自VC十年技术群, 欢迎内存池技术研究人员进本群, 共同研究技术. 也许以下的代码实现, 并不完美的, 也不是优秀, 但能解决实际问题, 可以证明是有效果的.无论如何, 也是提供了一个非常好的参考.以此鼓励不断为性能为内存使用烦恼的VC技术人员. 本文出自: 阿呆 http://blog.csdn.net/davemin宣传: VC 十年技术群 30107096 欢原创 2009-10-16 15:06:00 · 1034 阅读 · 1 评论 -
UDP 最高效率的稳定传输 - VC十年技术群聊天笔记
阿呆 -假装高手(40133435) 17:10:45我近一星期对UDP的程序,重写了. 等于我写了两个工程.发现重写后的工程很优秀.我不是神,我写程序也会出错. 我是得想想设计了. 可是也无法改变清高的我对此的藐视. 阿呆 -假装高手(40133435) 17:12:44我最近写的程序,居然可以叫所有网络程序全部SB. 把所有带宽抢过来. 而且还能保证数据的实时性,连续性.猥琐的原创 2010-02-24 17:49:00 · 1718 阅读 · 0 评论 -
有关: N T ALMOND 写的CBuffer 类存在的问题
有关: N T ALMOND 写的CBuffer 类应用的很广泛对于这个类的实现,本人有很大的异议如果不清楚,可以google 搜索 N T ALMOND 获得约 303,000 条结果搜索 N T ALMOND Buffer 获得约 23,600 条结果可见应用多少广泛。 或者上codeproject 找完成端口的例子。 我觉得他这个类在内存COPY时根本没有考虑到性能问题。原创 2010-04-20 14:29:00 · 1461 阅读 · 1 评论 -
改进TightVNC 笔记
2010 4.2->4.8 这一星期里我对TightVNC 1.3.10作了改进.但愿以下内容对你的调试,或者了解tightVNC 运行机制有所帮助. 目标是: 溶入到网络会议系统, p2p 模式无客户端请求数据. 带宽要求越小越好.实时性要求不是太高.可应用于大规模的网络培训, 网络教学. 如 单服务器支持的基于p2p 的上W人的网络培训. 等情况. 目前我已经实现无连接驱动原创 2010-04-08 22:37:00 · 2902 阅读 · 1 评论 -
strcpy, lstrcpy 相关API实现字符串COPY, 性能之比较
<br />n长度: 25, 字符串总长度: 56<br />字符串总长度: 57的测试也作了, 与此结果差不多.<br />时间单位:tick<br /> <br />测试结果如下:<br /> <br /><br />编绎器: VC6 <br />RELEASE<br />1亿次循环测试结果:<br /> lstrcpy=7437<br /> strcpy = 13047<br /> lstrcpyn = 6797<br /> strncpy = 1672<br /> mem原创 2011-01-19 14:31:00 · 1431 阅读 · 0 评论 -
提高性能的方法
1. 使用更好的硬件 2. 选择比较好的编程语言和编译器 vc6 的 strcpy, vc2008 的strcpy 性能区别极大。 RELEASE 1亿次循环测试结果:strcpy = 13047strcpy = 4500 check: strcpy, lstrcpy 相关API原创 2011-07-15 10:38:05 · 1190 阅读 · 1 评论 -
P2P 的末日 - 实战Port限制Nat VS WLAN
情况1。开放型NAT路由器比例在下将,目前Port限制Nat(Port Restricted cone NAT)路由器占比70%,且在增高。情况2。目前各地在推进100M带宽光纤入户。各各家庭将连入WLAN 这两种用户无法P2P, 原因是:WLAN 用户发给不同的主机,其最外层nat ip, port 很可能是不同的。那么这样, WLAN 先发给 Port限制n原创 2014-01-07 15:23:43 · 1269 阅读 · 0 评论 -
webrtc InStream Read 方法对网络包的支持实践
我只是使用webrtc 压缩和播放声音,并不使用其网络功能。因此结构:1. 麦:webrtc -> OutStream Write -> Send Data To Net2. 播放:Recv Data From Net -> buffer -> InStream Read -> webrtc 问题如下:webrtc 调用 InStream Read 方式来获取数据,以播放声原创 2013-12-28 00:58:35 · 966 阅读 · 0 评论 -
内存池性能研究
“我从盖茨身上学到很多有益的东西,而树立雄心壮志是其关键.在这个问题上,盖茨将这样说:当你考虑某一个问题时,千万不要从数百万的级别去考虑它,而是应该从数亿的级别去考虑.” 本文出自: 阿呆 http://blog.csdn.net/davemin 宣传: VC 十年技术群 30107096 欢迎高手加入,本群只研究VC 问题: Memory pool 要求 thread原创 2008-09-10 20:22:00 · 1260 阅读 · 0 评论 -
Desktop控制第二部分 - Hook Desktop
本来今天平安夜,我是要来写点东西的,结果发现上回的文章(Desktop控制第一部分)没有人注意,也没有人有留言, 故信心大减.但我还是把: Desktop背景图设置整理一下.另外再讲一下: Hook Desktop 后的方便, 以及Hook Desktop 的实现原理.1. Desktop背景图设置由于上一篇文章没有讲的很细致, 这回补充说明一下.下面的代码是基于VC6 MFC的.原创 2007-12-25 00:47:00 · 1887 阅读 · 1 评论 -
减小Exe, DLL 的大小问题 - VC
1. 普通Exe 文件完全可以使用下面方法: A. link标记: /nodefaultlib 代表: Ignore all default libraries包括运行时库, 都不用. 当然如果大家要用相关c运行时库的api 怎么办呢? 可以使用相关对应的API, 比如strcmpi, 使用lstrcmpi, 详细请参考下表:原创 2006-09-26 22:35:00 · 4065 阅读 · 1 评论 -
流氓软件的技术
流氓软件的技术五花八门,任何一项功能都有可能成为流氓技术,就象武器,用好了可以伸张正义,用歪了却成为罪恶的帮凶。首先我从win32下的一些流氓着数分析开始:1。我想做为一个流氓软件,首先要做到的是实时运行,譬如在注册表的run下,在boot下增加它的启动。这应该是比较老的方法,以前 3721好象就是在run下,但是现在一般的人都知道了。2。作为流氓软件,已经改变了以前一些木马的特性了,他没必要使自转载 2006-09-30 23:38:00 · 1595 阅读 · 1 评论 -
对学习VC学习.net的粗浅建议
本人对学习VC的粗浅建议:1. 你有多坏都没有关系,但你必须要有毅力,否则学VC不如不学.2. 要学VC就先不要学习其他的比如: .net, vb, 之类的.要学VC就先学到精通为止. 不可半途而废. 不能是个三流货. 所以你先考虑一个星期,觉得自己有三年时间可以学习VC你再做学习VC的决定. 当然相信不会和当前的工作冲突.因为学习VC也可以是业余的时间学习.3. 学习的顺序,应该由懂VC的安排,原创 2006-10-29 23:13:00 · 1279 阅读 · 0 评论 -
木马技术研究第一部分
木马技术研究第一部分申明: 本文涉及到的技术只供参考研究之用,不可用于非法行为,本人不负责。A. 写在开始自以为编写了几年的网络通信程序,对网络很熟悉,碰到个搞UNIX的朋友,才知道我对网络不精通。自以为研究了系统几年,对系统很熟悉,碰到个一直写驱动的朋友,才知道不用说linux, 就连win32我也不懂。自以为算法不错,碰到个写video,audio算法的家伙,才知道我只是菜鸟。但原创 2006-10-30 00:11:00 · 2284 阅读 · 0 评论 -
反流技术之IE插件技术研究第一部分
申明: 本文涉及到的技术只供参考研究之用,不可用于非法行为,本人不负责。A. 写在开始:继写了木马技术研究第一部分后, 我发现我的blog,PageRank上升了.最终发现中国的很多网站上摘抄我blog上的一些文章. 我写的东西很少,而能让别人摘抄, 怎么说也是一件荣幸的事. 这里只希望摘抄文章的朋友能够继续深入研究,为中国的反流反木马事业做点贡献原创 2007-01-05 15:55:00 · 3664 阅读 · 0 评论 -
反流技术之IE插件技术研究第二部分
上接: http://blog.csdn.net/davemin/archive/2007/01/05/1474858.aspx 申明: 本文涉及到的技术只供参考研究之用,不可用于非法行为,本人不负责。2.3. BHO 示例A. 下面我讲下,如何使用Microsoft Vistual Studio 6.0 中的VC 建BHO 程序。先找一个Microsoft原创 2007-01-08 05:36:00 · 2477 阅读 · 1 评论 -
APIHOOK VC 6.0 源程序例子
APIHOOK VC 源程序例子, 其实也只是参考了别人的研究,Copy 了别人的代码而已。当然大家也可以完全使用我的所有代码。很久没有写东西。所以只能这样将就的搞一点东西上来。另外,以前几篇文章里面提供的源程序或者是图像URL 都无效了。我已经改好了。本例子里面实现了对TextOut 这个API 的hook另外如何实现其他API, 可以自己参考这个方法:void CTestAP原创 2007-08-24 18:16:00 · 2174 阅读 · 3 评论 -
TerminateThread 与 该线程创建的内核对象 无关
本文旨在说明内核对象与TerminateThread 的无关性。A. 问题:强制结束一个线程后. 该线程占有的锁会不会释放?那一个线程正在阻塞(比如正在sleep()). 该怎么结束它呢?B.1. 存在的理论1:Te r m i n a t e T h r e a d 能够撤消任何线程。h T h r e a d 参数用于标识被终止运行的线程的句柄。当线程终止运行时,它的退出代码成为你作为原创 2007-09-07 16:11:00 · 1165 阅读 · 0 评论 -
模板类-安全链表 SafeList
模板类-安全链表 SafeList本文旨在说明:对: CPtrList CMap 之类的进行安全处理.曾经有个好友, 对CMap 封装了, 实现了安全map.我就封装了CPtrList, 实现了安全链表1. 声明, 重要实现template class DAVECMNLIB_CLASS CDVSafePtrList : public CPtrList最重要的代码:virtu原创 2007-11-20 13:25:00 · 1241 阅读 · 0 评论 -
Desktop控制第一部分 - 设置Desktop背景图
因为某些原因, 最近写了点控制桌面的程序.往往有很多程序员, 对这些东西感兴趣, 而自己研究又需要太多时间和精力.而本人进行了一点点粗浅的研究, 就共享给大家. 希望能得到大家的批评.本文旨在说明如果使用VC6进行: Desktop背景图的设置1. 桌面Wnd层有很多文章里面都说桌面分成多少成什么的, 我这里不想对这个太多说明.因为大家完全可以使用: Spy 这个vs提供的工具看清楚,原创 2007-11-23 13:27:00 · 1308 阅读 · 0 评论 -
webrtc InStream Read 方法对网络包的支持实践 补充
假设有:A,B 两个人语音。问题是:A 玩家关掉麦,无法开启麦(进一步原因是:A 玩家关掉麦,便收不到B玩家的数据 )情况如下:Step 1. A玩家关掉麦,B 玩家的播放,是在等待A玩家的网络数据。因为无法知道是A关掉,还是因为网络延迟造成数据暂时没到。Step 2. B玩家的Write 不会被顺利调用. 也就是B玩家的OutStream Write 被 InStr原创 2013-12-28 10:19:00 · 943 阅读 · 0 评论