论坛首页 Java企业应用论坛

程序运行效率与灵活性之间的矛盾

浏览 10756 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2004-10-26  
gigix 写道
hpq852 写道
gigix 写道

但是这些配置信息是要持久化的。没有JNDI,当然更没有数据库,持久化到哪里?说来说去,还是文件。


就来考虑配置信息的持久化,没有JNDI,没有数据库,怎样来持久化,我能想到的只有是JVM中的静态区了,所以只要保证JVM一直处于打开状态,静态区就不会消失,可以写个后台线程,让它保证JVM不会关闭,不过这样是不是有点得不偿失?


呵呵,要是断电了怎么办?为了节约几秒钟加载时间,一次断电之后没准就得花几个小时来恢复以前的状态。


这个后台程序可以随着Application的启动而启动,而Applicatoin关闭的时候,这个后台程序继续运行,这样断电,或者重新启动电脑,最多在第一次启动Application的时候加载一次配置信息,以后在启动Application的时候就无须加载
0 请登录后投票
   发表时间:2004-10-26  
不知所谓,怎么扯到“持久化”身上去啦?持久化跟配置文件没什么关系吧!
0 请登录后投票
   发表时间:2004-10-26  
firebody 写道
不知所谓,怎么扯到“持久化”身上去啦?持久化跟配置文件没什么关系吧!


运行时的信息保存到持久存储介质,下次运行再从持久存储介质取出信息,这不叫持久化该叫什么?
0 请登录后投票
   发表时间:2004-10-26  
还是用配置文件好一点吧,持久化和配置文件相对而言, 估计还是配置文件更容易处理一点
0 请登录后投票
   发表时间:2004-10-26  
gigix 写道
firebody 写道
不知所谓,怎么扯到“持久化”身上去啦?持久化跟配置文件没什么关系吧!


运行时的信息保存到持久存储介质,下次运行再从持久存储介质取出信息,这不叫持久化该叫什么?

从你的这句话里面我看不到“配置文件”这个词!
当然我也可以理解为根据”配置文件“选择持久化的策略:比如DB或者文件
,然而讨论这些没什么意义吧!
正如前面我发的帖子一样,动不动利用配置文件的形式设计应用的思路不可取。
0 请登录后投票
   发表时间:2004-10-26  
scud 写道
还是用配置文件好一点吧,持久化和配置文件相对而言, 估计还是配置文件更容易处理一点


真奇怪,难道把信息保存在配置文件就不叫“持久化”了吗?联系到前面那位同志的质疑,真不知道你们是怎么理解“持久化”这个词的。难道在你们眼里,只有把信息放进数据库才叫“持久化”不成?
0 请登录后投票
   发表时间:2004-10-26  
:twisted:
0 请登录后投票
   发表时间:2004-10-26  
gigix 写道
scud 写道
还是用配置文件好一点吧,持久化和配置文件相对而言, 估计还是配置文件更容易处理一点


真奇怪,难道把信息保存在配置文件就不叫“持久化”了吗?联系到前面那位同志的质疑,真不知道你们是怎么理解“持久化”这个词的。难道在你们眼里,只有把信息放进数据库才叫“持久化”不成?

请你不要把人家都当成都跟你以前一样苯!
0 请登录后投票
   发表时间:2004-10-26  
嘿嘿 我的意思是说: 那种特殊格式的,非文本格式的持久化

毕竟和"普通的常用的"配置文件还是有区别的吧
0 请登录后投票
   发表时间:2004-10-27  
hpq852 写道
实际应用中为求得更高的灵活性,往往借助于配制文件,如xml,properties文件等,但由于io操作效率过于低下,所以需要寻找合理的方法来解决这个问题,如静态区,JNDI,注册模式等,在容器一启动的时候就读取配制文件,这样以后就直接读取静态区或是JNDI查找就可以,但是这些往往都需要借助于容器,但是如果简单的Application的话,没有容器,也就不能用JNDI了,而静态区,随着Application运行的结束也就不存在了,所以当再次运行Application的话,还需要再次进行io操作,严重的影响了性能,不知道有没有更好的解决方案?


我这样理解不知道对不对, 其实配置文件的东西,一般都是加载到内存中,在Application的生命周期中存在, 为application提供可以在运行期间改变的变量.
因此所谓的性能影响, 其实应该是指在application startup时候的速度很慢,在各种配置完全加载之后, 应该不会对性能产生太多的影响.

MS的文挡中指出registry的操作, 读取XML文挡,或者.ini 都是耗用时间的操作, 对于.NET和java的application可能会更明显. 我个人观点如下:

1. 能延迟读取的信息尽量延迟读取. 例如About对话框里的user信息, 例如network setting可以到使用network操作的时候才读取,产生延迟的感觉就是减少许多.

2. 采用Splash Screen, 在Splash Screen Appears的同时, 读取配置文件, 虽然不能提高性能, 但是可以让客户不會有"真慢"的感觉.

不了解你是什么性能受到影响, 妄自揣度.
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics