2012年11月6日

.一个堆栈类的实现(原创)

摘要: 模拟堆栈的实现,线程安全,速度快,开销小//堆栈的实现 2012-11-04unit sfStacks;interface{$DEFINE MULTI_THREAD_QUEUE} //线程安全版本{$IFDEF MULTI_THREAD_QUEUE}uses Windows;{$ENDIF}type TsfStack=class private FStackSize:Integer; FBuff:Pointer; {$IFDEF MULTI_THREAD_QUEUE} FCS:TRTLCriticalSection; {$ENDIF} FPosition:... 阅读全文

posted @ 2012-11-06 01:36 歼10 阅读(579) 评论(0) 推荐(0) 编辑

.DateTimeToStr函数专用优化版

摘要: 为了在日志文件中写入标准格式的时间。要将时间(Now() 转换到字符格式 "YYYY-MM-DD hh:mm:ss zzz"就编写了此函数,delphi系统自身也带了转换函数 formatDateTime('YYYY-MM-DD hh:mm:ss zzz',Now())也可以实现此功能。考虑到我这个是固定格式的转换函数,作进一步的优化。//实际测试效果运行 1,000,000 次 FormatDateTime()===>2825ms sfNowToBuf() ==>545procedure sfNowToBuf(const OutBuf:PCha 阅读全文

posted @ 2012-11-06 01:32 歼10 阅读(1400) 评论(2) 推荐(1) 编辑

简单的缓冲区助手类

摘要: //代码修改于 ICS 网络通信控件 中的TBuff类 在某些有性能要求的地方,我们会开辟一块缓冲区,也就是分配一块内存,数据在都在此内存中操作,避免频繁的内存分配释放操作。尤其在写服务器端程序时,这点显得非常重要,如果是普通的客户端程序,本文所说的方法,就不要考虑了,毕竟是操作有些繁琐。这个助手类的目的是提高性能,同时还有个特点,助手类内部会进行内存边界的检测,保证在往缓冲区内写数据的时候,不会发生溢出,听过说 著名的“缓冲区溢出”攻击吧。另外一个特点是,缓冲区的大小是在创建的时候,一次分配好,而不能进行修改。目的是配合内存池使用,减少内存碎片的产生。但类的内部提供了,动态改变缓冲区大小的功 阅读全文

posted @ 2012-11-06 01:25 歼10 阅读(324) 评论(0) 推荐(0) 编辑

导航