JiveJdon Community Forums
在线195人   首页   主题总表   培训咨询   精华   查搜   注册    登陆
首页 » 论坛 » 设计模式、框架和架构
???en_US.forumThreadPrev.name??? 上一主题
  Go back to the topic 返回本主题   Go back to the topic listing返回主题列表
???en_US.forumThreadNext.name??? 下一主题
1 2 Go 总共有 22 回复 / 2
 发表新帖子   回复该主题贴
henry.t

悄悄话
发表文章: 148
注册时间: 2003年01月02日 14:01
请问,我这样做是不是很浪费资源啊??? 2003年01月08日 00:13 到本帖网址 加入本帖到收藏夹 发送到手机 回复该主题
标签列表
在JIVE中,要在页面上打印用户的信息,要先GETUSER(USERID),也就是先实例化一个USER类,然后再用它USER.GETNAME()等等,我打算再我开发的系统中也这样用,但与JIVE不同的是,我的USER信息很多,比JIVE的多很多,换句话说要实例化它代价要大一点,比如我只需要取得用户的名字,就必须先实例化USER,感觉付出与得到的不成比例,(实例化一个看起来很打的类,却只是执行取得名字这一点小操作,然后又释放,很浪费啊)。
请问,我得担心有必要吗?真的如我所料很浪费吗?如果有必要,我该怎么做来改变这种情况??????请回答,谢谢
hxz

悄悄话
发表文章: 88
注册时间: 2002年12月03日 10:16
Re: 请问,我这样做是不是很浪费资源啊??? 2003年01月08日 09:55 到本帖网址 加入本帖到收藏夹 发送到手机 回复该主题
象jive中一样,你也可以专门用一个表来放用户名,这样读入的速度就快一些!事实上实例化一个类的成本没有读数据库的大啊!

你的用户数据是在数据库中吗?
banq

悄悄话
发表文章: 9312
注册时间: 2002年08月03日 17:08
Re: 请问,我这样做是不是很浪费资源啊??? 2003年01月08日 10:06 到本帖网址 加入本帖到收藏夹 发送到手机 回复该主题
首先你的担心是正确的,Java设计中应该有珍惜资源的习惯。
你可以使用cache 或Session的方法 ,防止反复构造User对象。
wlkid

悄悄话
发表文章: 9
注册时间: 2003年01月08日 12:50
Re: 请问,我这样做是不是很浪费资源啊??? 2003年01月08日 12:52 到本帖网址 加入本帖到收藏夹 发送到手机 回复该主题
结合或者单独使用延迟初始化的策略来降低开销
henry.t

悄悄话
发表文章: 148
注册时间: 2003年01月02日 14:01
Re: 请问,我这样做是不是很浪费资源啊??? 2003年01月08日 13:58 到本帖网址 加入本帖到收藏夹 发送到手机 回复该主题
结合或者单独使用延迟初始化的策略来降低开销

请问是什么意思啊?????

hxz
我的数据是放在数据库里.

BANG
你的意思是第一次初始化后将他放在SESSION或CASH里面,以后再用同样的USER时,就从SESSION或CASH里面取????


谢谢你们的指点!!

henry.t

悄悄话
发表文章: 148
注册时间: 2003年01月02日 14:01
Re: 请问,我这样做是不是很浪费资源啊??? 2003年01月08日 23:34 到本帖网址 加入本帖到收藏夹 发送到手机 回复该主题
up 等待指点
mem_fox

悄悄话
发表文章: 48
注册时间: 2002年10月17日 10:46
Re: 请问,我这样做是不是很浪费资源啊??? 2003年01月09日 10:03 到本帖网址 加入本帖到收藏夹 发送到手机 回复该主题
我的做法最简单,用静态的Hashtable来缓存用户对象,如果Hash表里面没有相应数据在到数据库中读取
如果怕这样太消耗内存的话,就用一个队列存储对象的访问此时,把访问频繁的放在前面,定时删除队伍尾部的就可以了
办法很土,不能在Cluster上用
henry.t

悄悄话
发表文章: 148
注册时间: 2003年01月02日 14:01
Re: 请问,我这样做是不是很浪费资源啊??? 2003年01月09日 10:17 到本帖网址 加入本帖到收藏夹 发送到手机 回复该主题
请问什么是"延迟初始化的策略"
henry.t

悄悄话
发表文章: 148
注册时间: 2003年01月02日 14:01
Re: 请问,我这样做是不是很浪费资源啊??? 2003年01月10日 13:57 到本帖网址 加入本帖到收藏夹 发送到手机 回复该主题
BANG期待你的回答
hxz

悄悄话
发表文章: 88
注册时间: 2002年12月03日 10:16
Re: 请问,我这样做是不是很浪费资源啊??? 2003年01月10日 14:23 到本帖网址 加入本帖到收藏夹 发送到手机 回复该主题
用mem_fox 的方法是大量用户时的很好的办法
但是你说的是用户的属性(信息)很多,造成实例化时相关信息的浪费
我试着提几个方法
一:用外键关联一些用户信息
二:干脆把常用的那几个属性提出来做一个小表,这样可以加速,如果还有要求,可以把这个小表的信息放到"缓冲"中来
三:如果用户很多并且不确定的访问,可以借用jive中的cache机制啊(我也没看过,很想读源代码,看完记得写一篇出来啊!)
我是新手有什么错误请指出!
henry.t

悄悄话
发表文章: 148
注册时间: 2003年01月02日 14:01
Re: 请问,我这样做是不是很浪费资源啊??? 2003年01月10日 15:04 到本帖网址 加入本帖到收藏夹 发送到手机 回复该主题
to:hxz
你太谦虚了,看了不少你的贴子,比起我来,你算是前辈了,以后还要多多向你学习呢,希望不吝赐教哦.

cc

悄悄话
发表文章: 279
注册时间: 2002年08月07日 23:47
Re: 请问,我这样做是不是很浪费资源啊??? 2003年01月13日 13:12 到本帖网址 加入本帖到收藏夹 发送到手机 回复该主题
将非关键性树型存储到Map里是个很好的办法,你的Map可以用XML来配置属性,这是一种模式,网上的pdf书中有相关介绍。
henry.t

悄悄话
发表文章: 148
注册时间: 2003年01月02日 14:01
Re: 请问,我这样做是不是很浪费资源啊??? 2003年01月13日 23:39 到本帖网址 加入本帖到收藏夹 发送到手机 回复该主题
请CC点明在哪有下载啊????
LuoTing

悄悄话
发表文章: 4
注册时间: 2003年03月10日 16:41
Re: 请问,我这样做是不是很浪费资源啊??? 2003年03月10日 16:49 到本帖网址 加入本帖到收藏夹 发送到手机 回复该主题
可以考虑建一个类 UserKey
然后在原先的 User类中增加一个方法 getUserByKey(UserKey) 来根据Key取得用户数据(假设名字是唯一的)

它可以解决你的问题。当你只需要访问用户名字时,你可以只实例化Key,节约资源,如果想要访问用户的别的属性,无缝的用getUserByKey取得。
Jevang

悄悄话
发表文章: 174
注册时间: 2002年12月07日 09:37
Re: 请问,我这样做是不是很浪费资源啊??? 2003年03月14日 03:07 到本帖网址 加入本帖到收藏夹 发送到手机 回复该主题
If your class is simply a wrapper or a data structure, then there is no much overhead( less than 100 bytes) to make it a object instance. But how to manage resource efficiently and object's lifecycle can be complicated. i.e.: no matter you store it in a dedicate cache or session, how to control memory size, when to expire it if it becomes obsolete due to update or delete...

In general, you need a mechanism that can selective cache any table( cache from Expresso is a good ref), with basic control ( LRU or usage count), at least use a weak referenced hashmap to avoid overload. If the cached info is not read only, you'd better make it a class, it's smart enough to sync itself with DB and cache when change happens.
这个主题有 22 回复 / 2Go 1 2
???en_US.forumThreadPrev.name??? 上一主题
  Go back to the topic 返回本主题   Go back to the topic listing返回主题列表    返回页首返回页首
???en_US.forumThreadNext.name??? 下一主题
热点TAG: AOP cache 缓存 DDD EJB 集群 设计模式 Hibernate IOC JiveJdon OO RBAC Seam Spring Struts
正在读取,请等待...
google yahoo 新浪ViVi 365Key网摘 天极网摘 CSDN网摘 添加到百度搜藏 POCO网摘 博采网摘
查询本论坛内 回复超过的热门帖子
     回复该主题贴
标题
 
粗体 斜体 下划线 插入图片 插入代码 插入url链接 插入附件
内容
 

手机阅读 add to google add to yahoo
解惑之道在J道 ,打造中国最具影响力的的企业软件社区
OpenSource JIVEJDON v3.0 Powered by JdonFramework Code © 2002-08 jdon.com
anti spam