2012年4月13日

关于 IHTMLDocument4 在 Delphi7.0 中不能编译的的解决方法

摘要: IHTMLDocument4 是微软公司开发的WebBroswer 中的接口,Delphi7.0中在 MSHTML.PAS 单元中,做了此接口的声明。但Delphi7.0发布的时间很久了。某些新的接口没有在MSHTML中被包括进去。最近写的一个软件中,使用了 IHTMLDocument4 发现并解决了此问题。重新生成MSHTML的接口声明文件。 阅读全文

posted @ 2012-04-13 16:25 歼10 阅读(288) 评论(1) 推荐(1) 编辑

2011年10月10日

高吞吐量的一个日志函数类_用于IOCP (Delphi)

摘要: 在开发服务器端程序的时候,日志是必须的一个功能。由于服务器端的要频繁的把数据写入日志,开始的时候用了一个很简单日志函数就是直接把日志字符写入文件中。然后关闭连接。一直也应用良好。但做压力测试的时候,因为要每个连接的数据都要写入日志,发现运行的一段时间后,频繁掉线,CPU占用率,居高不下,优化了可以想到的很多地方,有一定的效果,仔细观察发现,硬盘灯狂闪不止,说明硬盘I/0操作过于紧张。但测试的时候,基本是不读写硬盘的,恍然发现,是日志函数影响到整个系统的性能。每一个日志数据的时候,就要打开文件,写入文件,关闭文件。哈,这些都是相对昂贵的I/0操作。优化的方法很简单,缓存数据,定期的批量写入磁盘. 阅读全文

posted @ 2011-10-10 16:32 歼10 阅读(4457) 评论(14) 推荐(6) 编辑

2011年10月6日

一个队列类的实现(比delphi自带的速度快70倍)

摘要: 测试结果实现的代码unit sfContnrs;interface{$DEFINE MULTI_THREAD_QUEUE} //线程安全版本,如果不需要线程安全,请注释掉此行代码{$IFDEF MULTI_THREAD_QUEUE}uses Windows;{$ENDIF}type TsfQueue=class private FCapacity:Integer; FTmpBuff:Pointer; FBuff:Pointer; FPosition:Integer; {$IFDEF MULTI_THREAD_QUEUE} FCS:TRTLCriticalSection; {$ENDIF} // 阅读全文

posted @ 2011-10-06 17:03 歼10 阅读(3819) 评论(3) 推荐(0) 编辑

PostThreadMessage在线程中应用(以多线程网站数据采集为例)

摘要: PostThreadMessage 顾名思议,向线程中发送消息.下面讲讲我在线程中的应用体会 在Delphi 中,我们大多数人,使用线程的时候,都会用到系统自带的TThread 类,来完成线程的操作。 从TThread 中派生出一个自己的类,然后重载 Execute 函数,其在TThread中被定义成了抽象类(纯虚类C++)。子类必须重载这个函数.在此函数中,写入你要完成的任务代码. 例如 最简单应用TCustXXXXThread=class(TThread) public procedure Execute();override; end; TCustXXXXThread.Execute() 阅读全文

posted @ 2011-10-06 16:31 歼10 阅读(1662) 评论(1) 推荐(1) 编辑

导航