用"池"来提升对象的复用
来源:互联网 发布:遍历二叉树非递归c语言 编辑:程序博客网 时间:2024/06/05 09:43
对象池化是目前常用的一种系统优化的技术。通俗的说也就是一个对象不用多次的被实例化,来消耗性能,可以把这些常用的类放入一个池中,当需要的时候在去池里去拿去,不用的时候 在放入池中。可以叫做对象池。他可以是一个数组或者一个其他的集合。
咱们平常接触的池中比较多的应该是:数据库连接池、线程池了。我想大家都知道创建一个对象和销毁一个对象都是一个很费时的工作。还有数据库的建立连接和销毁连接这些相对而言都是重量级的操作,所以来说,避免这些操作,对于改善系统的性能也有积极意义。也就是说,有效的使用者两种技术,可以有效的改善系统在高并发下的性能。任何对性能敏感的系统,都需要考虑合理的配置这连个组件。较常见的数据库连接池有c3p0、dbcp、bonecp。
在jdk中,new这个操作的使用效率是想当高的,不需要担心频繁的的new 操作对系统有性能的影响。但是new操作时所调用的类构造函数可能是非常费时的,对于这些对象,可以考虑池化。
但是呢,不是池化都很好,任何东西都有一个平衡点,只有对那些重量级对象使用对象池技术才能提高系统的性能,对轻量级的对象使用对象池技术,可能会起到反面的效果,从而影响性能。
以上说的有些不是很清楚,希望大家指点。
- 用"池"来提升对象的复用
- 博客之行,用书写来提升个人的能力
- iOS 用RunTime来提升按钮的体验
- 用gbm包来提升决策树能力
- 用gbm包来提升决策树能力
- 用低成本的对象来传类型
- 用js来实现栈的对象
- 用一个中介对象来封装一系列的对象交互
- 用Redis缓存来提升数据库查询性能
- C++用new来创建对象和非new来创建对象的区别
- C++用new来创建对象和非new来创建对象的区别
- C++用new来创建对象和非new来创建对象的区别
- C++用new来创建对象和非new来创建对象的区别
- C++用new来创建对象和非new来创建对象的区别
- C++用new来创建对象和非new来创建对象的区别
- 利用stringbuilder来提升字符串的性能
- 用Cookie来存储对象
- javascript中字符串连接时用Array.join()替换 string += "xx",换来几十倍的速度提升
- Office 2010使用技巧
- WK13
- hdu 4431 Mahjong (模拟,枚举+dfs)
- Android下实现injectso
- Cloud Foundry中通用service的集成
- 用"池"来提升对象的复用
- Mobile Service更新和 Notification Hub 对Android的支持
- 重要的计算机图像分析和计算机视觉会议
- webapi的使用
- QT图表应用程序的创建
- iphone之NSArray比较大小
- json.js和org.json.jar
- SharePoint场管理-PowerShell(二)
- linux下eclipse集成tomcat(tomcatforEclipse)开发