下面讲讲我在开发软件时常用的两个集中管理的地方:
1>>网络连接的管理Socket的连接很是麻烦,一旦你程序不知道什么问题自己出现退出,但这时Socket没有关闭.会出现"CLOSE WAIT"状态很是麻烦. 下次重新连接就麻烦多多了,要不是连接等待, 要不就是出错了.有什么办法可以避免呢?
如何删除CLOSE_WAIT状态请看:
http://blog.chinaunix.net/u/19782/showart.php?id=218982假设你的程序中有20处会做open, close Socket操作时, 我建议你可以考虑一下我的建议. 将open, close自己做一次重新封装. 把open返回的socket id集中存放在一个地方来进行管理(可以是全局数组, 也可以是局部静态数组), 让程序退出(可能是正常,也可能是非正常)时一定要检测该部分内容做close操作.
我用的感觉很不错,连接池这东西还是挺不错(快了很多),刚做了一个.
2>>内存分配的管理如果你的程序要进行多次malloc, free操作时, 但你有怕什么地方没有free, 我们都知道一个长期运行的程序(如:Web Service)如果有malloc忘了free的长期下去就会出现系统内存泄露的, 很是麻烦.
这是你可以考虑一下集中管理, 自己来做个my_malloc, my_free函数来完成同样的功能, 我的意识是一次malloc一片大的buffer后,自己再采用my_malloc,my_free来在自己的buffer上来分配真的很不错, 但注意使用上当心buffer 边界的情况处理哦!
这中方法我也用过感觉很不错.
---------------------
集中管理是一种思想, 现在数据也在慢慢的走向集中管理方向的. 当然集中管理也会有很多麻烦, 但对有些问题来说这也是一种非常不错的方法哦!!!
阅读(2026) | 评论(0) | 转发(0) |