自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(1)
  • 资源 (13)
  • 收藏
  • 关注

原创 服务程序性能优化之另辟蹊径

前言:    很久没写文章了,因为最近和朋友讨论问题时说到了性能优化这个话题,特将我之前解决一个linux下服务器性能问题的思路和方式共享一下。背景:    基本需求如下:在Linux下,有一台数据处理服务器,需要从网络上的很多节点获取信息,并按照管理员的要求进行分析和过滤,然后保存结果等待二次处理(从业务逻辑上,可以认为是网监部门从各位的QQ聊天中分析关键字,发现特别之处进行关注或请

2013-05-26 12:12:20 1359

Windows下比较完美线程池的升级版本

Windows下比较完美线程池的升级版,加入了我对线程池能想到的几乎所有功能,而且更改了第一版本的一些Bug,并进行了效率的优化。 第一版的介绍地址:http://blog.csdn.net/fishjam/article/details/8632049 功能列表如下: 1.能自动根据任务和线程的多少在 最小/最大 线程个数之间调整(Vista后的系统有 SetThreadpoolThreadMaximum 等函数有类似功能),现已支持动态改变最小、最大值。 2.可以设置等待Job的最大个数,并在加入Job时,队列满了的话,可以设置等待超时并根据返回值进一步处理 3.能方便的对任一任务进行取消,如任务尚未运行则由框架代码处理,如任务已经运行,则需要 JobBase 的子类根据 GetJobWaitType 的返回值进行处理 4.能对单个Job或整个线程池进行 暂停、继续、停止 处理 -- 需要 JobBase 的子类根据 GetJobWaitType 的返回值进行处理 5.支持回调方式的反馈通知( Progress/Error 等) 6.使用模版方式实现,能方便的进行参数传递 7.在加入任务时可以设置优先级,现已支持动态调整优先级 8.使用的是微软的基本API,能支持WinXP、Vista、Win7等各种操作系统(CreateThreadpoolWork 等只能在Vista后才能使用) 9.可以有多个实例,方便进行控制(QueueUserWorkItem 等是单实例) 10.采用的是对称模式的线程池(没有管理线程),运行成本低

2016-01-18

Windows下比较完美线程池的升级版

Windows下比较完美线程池的升级版,加入了我对线程池能想到的几乎所有功能,而且更改了第一版本的一些Bug,并进行了效率的优化。 功能列表如下: 1.能自动根据任务和线程的多少在 最小/最大 线程个数之间调整(Vista后的系统有 SetThreadpoolThreadMaximum 等函数有类似功能),现已支持动态改变最小、最大值。 2.能方便的对任一任务进行取消,如任务尚未运行则由框架代码处理,如任务已经运行,则需要 JobBase 的子类根据 GetJobWaitType 的返回值进行处理 3.能对单个Job或整个线程池进行 暂停、继续、停止 处理 -- 需要 JobBase 的子类根据 GetJobWaitType 的返回值进行处理 4.支持回调方式的反馈通知( Progress/Error 等) 5.使用模版方式实现,能方便的进行参数传递 6.在加入任务时可以设置优先级,现已支持动态调整优先级 7.使用的是微软的基本API,能支持WinXP、Vista、Win7等各种操作系统(CreateThreadpoolWork 等只能在Vista后才能使用) 8.可以有多个实例,方便进行控制(QueueUserWorkItem 等是单实例) 9.采用的是对称模式的线程池(没有管理线程),运行成本低

2016-01-18

使用SWT+WinBuilder制作的JavaDemo程序

通过学习研究,发现参照 Eclipse 自带的 ControlExample SWT 示例程序,并结合 WinBuilder可以很好的进行可视化开发出完全满足我要求的JavaDemo程序,方便演示效果和进行扩展,特共享出来。

2016-01-17

一个可以重用的线程安全生产者消费者队列类

生产者、消费者队列的代码和文档和例子,CSDN或别的网站上已经有很多了,我就不再多说了。不过一般的文档中给出的例子往往只是“例子”,要用于实际的项目开发中差的很远,共享一下我以前写的一个线程安全的生产者消费者队列类。具有如下特点: 1.可以设置队列中的最大长度; 2.线程安全; 3.多线程想向队列中放入数据时,可设置等待队列有空位的超时时间,当有空位时,等待线程会被唤醒并将数据加入队列。函数原型为:FTLThreadWaitType Append(const ELEMENT& element, DWORD dwTimeOut). 4.多线程从队列中取出数据时,可设置等待队列有数据的超时时间, 当有数据时等待线程会被唤醒。函数原型为:FTLThreadWaitType Remove(ELEMENT& element, DWORD dwTimeOut), 5.支持安全的退出,即如果在等待加入数据或取出数据时,能直接通过Stop唤醒。 6.支持动态改变队列大小 -- 但这个功能我测试的不是很多,可能有Bug,如发现有Bug请告诉我。 7.和我其他FTL中的类一样,支持模版。 本次就偷一下懒,只上传源码和UT代码,就不再写示例程序了。下载了源码以后需要自己对应更改一下(如果实在更改不来,可以给我回复信息,我有空时再写个Demo放上来)。 博客地址:http://blog.csdn.net/fishjam/article/details/8832145

2013-04-21

使用线程池实现的Http上传下载实现

福利贴: 前段时间发布了《Windows下一个比较完美的线程池实现和示例》(http://download.csdn.net/detail/fishjam/5106672),根据下载量和评论来看,对大家还比较有用。 现在发布一个利用该线程池实现的Http上传下载实现,不过这几个类写的比较粗糙,比如: 1.还有很多问题没有考虑或提供解决方案(本地磁盘已有同名下载文件的处理,理论上应该通过回调由用户选择处理); 2.也有很多我想加的东西(比如 身份验证、多线程下载同一个文件等)都没有加进去, 希望大家多多包含。另外如果大家发现有什么问题或好的建议,请及时告知。我。 PS:更改了我在博客中所说的,当以 Start(0, N) 启动线程池,可能造成 Wait 超时的Bug.

2013-03-17

Windows下一个比较完美的线程池实现和示例

Windows下一个比较完美的线程池实现和示例 本线程池提供了如下功能: 1.能根据任务个数和当前线程的多少在最小/最大线程个数之间自动调整(Vista后的系统有 SetThreadpoolThreadMaximum 等函数有类似功能); 2.能方便的对任一任务进行取消操作,无论该任务是等待运行状态还是正在运行状态都支持(相比较而言,WaitForThreadpoolWorkCallbacks 函数只能取消尚未运行的任务); 3.能对整个线程池进行安全的暂停、继续、停止处理 4.支持回调方式的反馈通知 5.使用模版方式实现,能方便的进行参数传递 6.在加入任务时可以设置优先级(目前尚不支持动态调整) 7.使用的是微软的基本API,能支持WinXP、Vista、Win7等各种操作系统(CreateThreadpoolWork 等只能在Vista后才能使用) 详细说明参见本人博客

2013-03-03

Debug Info Filter(二进制,非源码)

具体内容参见blog DirectShow中用于调试的一个Inpladce Transform Filter,具有如下功能: a.当不起用其“Dump”功能时,对原始的Graph没有影响,但推荐只在调试时使用; b.能列出并动态更改前后连接的Filter采用的MediaType(参见示例1); c.能将流过其中的指定数据按照结构化存储的方式Dump到指定文件中,方便分析(参见示例2),个人感觉比微软Sample中的Dump好用多了; d.能查看当前Graph中的各个Filter的详细信息,比如名字、MediaType、Allocator、支持的接口等(参见示例3)。这个可是好东西哦,当在使用一个Filter时,至少通过其提供的接口,猜到怎么用,及应该去查什么资料了。

2012-12-09

C++实现的可以安全的暂停、继续、停止线程的线程类和Sample

在使用线程时,最麻烦的就是线程的同步控制,如暂停、继续、停止(包括暂停状态下)等。虽然微软提供了 SuspendThread、TerminateThread 等函数“似乎”可以完成这个功能,但如果你在代码里使用这些函数,则往往会遇到各种问题(比如SuspendThread时正好在CRT分配内存的锁中造成其他线程也跟着锁死,TerminateThread时资源未释放)等。 本人经过试验和总结,整理出可以安全的进行暂停、继续、停止线程执行的一个线程类,能非常方便的对线程进行控制。 附件里是源码和Sample程序,并有详细的使用说明。

2012-04-04

COM学习笔记和测试程序2

之前在 http://download.csdn.net/detail/fishjam/4174884 共享了我学习COM的时做的测试程序和笔记, 结果有人下载以后说”包里只有程序而没有笔记“ 而且”不能运行“。 我在相关的博客文章中(http://blog.csdn.net/fishjam/article/details/7400954)也写的非常清楚,”采用一个COM知识分类一个★头文件★的方法,将各种COM知识的学习笔记记录在其中“,莫非没有doc文件就不叫笔记了? 何况还抓了图。。。 因为我没有找到修改上传文件的地方,因此采用0资源分的方式重新上传,让大家自由下载并评测是否真的没有价值。 补充说明: 1.因为csdn不能重复上传相同的文件,因此我将压缩文件的名字改了,不过内容仍然是以前那个; 2.编译环境是 VS2008 + SP1 , 没有装SP1的话我不知道会出现什么问题,如果有问题可以及时和我沟通并更改。

2012-03-28

COM学习笔记和测试程序

针对COM学习中记下的各种笔记和测试代码,方便学习各种COM知识。

2012-03-26

检测COM接口信息的源码和例子

通过简单的宏获取一个接口能提供的信息,比如能QueryInterface的接口,能通过QueryService提供的服务,容器希望接口提供的服务等。 比如,代码为: COM_VERIFY(spShellBrower.CoCreateInstance(CLSID_ShellDesktop)); //定义并创建 ShellDesktop 的实例 COM_DETECT_INTERFACE_FROM_REGISTER(spShellBrower); 输出为: f:\mywork\comdetectdemo\comdetectdemodlg.cpp(105) : Begin Detect Interface spShellBrower( 0x00162A00 ) From Register 1 : IUnknown 2 : IStorage 3 : IPersist 4 : IShellIcon 5 : IShellFolder 6 : IPersistFolder 7 : IPersistFolder2 8 : IItemNameLimits 9 : IShellFolder2 10 : IOleCommandTarget 11 : IObjectWithSite Total Check 10637 Interfaces spShellBrower's Interfaces Count are at least 11 可知 CLSID_ShellDesktop 至少提供了 11 个接口。 更多信息参见文档: http://blog.csdn.net/fishjam/article/details/7365322

2012-03-17

程序化的设计模式学习源码

将设计模式的学习信息采用程序的方式进行显示. 详细信息参见:http://blog.csdn.net/fishjam/article/details/3740114

2012-02-13

将设计模式的学习信息用C#程序展现

将23个设计模式的学习信息用C#程序展现,可以通过列表方式查看任何一个设计模式的详细信息,并能随时修改运行示例代码。具体信息参见 http://blog.csdn.net/fishjam/archive/2009/01/09/3740114.aspx

2009-01-09

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除