Chinaunix首页 | 论坛 | 博客
  • 博客访问: 4043158
  • 博文数量: 536
  • 博客积分: 10470
  • 博客等级: 上将
  • 技术积分: 4825
  • 用 户 组: 普通用户
  • 注册时间: 2006-05-26 14:08
文章分类

全部博文(536)

文章存档

2024年(3)

2021年(1)

2019年(1)

2017年(1)

2016年(2)

2013年(2)

2012年(10)

2011年(43)

2010年(10)

2009年(17)

2008年(121)

2007年(252)

2006年(73)

分类:

2007-02-03 15:02:16

下面讲讲我在开发软件时常用的两个集中管理的地方:

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) |
给主人留下些什么吧!~~