锁定老帖子 主题:程序运行效率与灵活性之间的矛盾
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2004-10-26
gigix 写道 hpq852 写道 gigix 写道 但是这些配置信息是要持久化的。没有JNDI,当然更没有数据库,持久化到哪里?说来说去,还是文件。 就来考虑配置信息的持久化,没有JNDI,没有数据库,怎样来持久化,我能想到的只有是JVM中的静态区了,所以只要保证JVM一直处于打开状态,静态区就不会消失,可以写个后台线程,让它保证JVM不会关闭,不过这样是不是有点得不偿失? 呵呵,要是断电了怎么办?为了节约几秒钟加载时间,一次断电之后没准就得花几个小时来恢复以前的状态。 这个后台程序可以随着Application的启动而启动,而Applicatoin关闭的时候,这个后台程序继续运行,这样断电,或者重新启动电脑,最多在第一次启动Application的时候加载一次配置信息,以后在启动Application的时候就无须加载 |
|
返回顶楼 | |
发表时间:2004-10-26
不知所谓,怎么扯到“持久化”身上去啦?持久化跟配置文件没什么关系吧!
|
|
返回顶楼 | |
发表时间:2004-10-26
firebody 写道 不知所谓,怎么扯到“持久化”身上去啦?持久化跟配置文件没什么关系吧!
运行时的信息保存到持久存储介质,下次运行再从持久存储介质取出信息,这不叫持久化该叫什么? |
|
返回顶楼 | |
发表时间:2004-10-26
还是用配置文件好一点吧,持久化和配置文件相对而言, 估计还是配置文件更容易处理一点
|
|
返回顶楼 | |
发表时间:2004-10-26
gigix 写道 firebody 写道 不知所谓,怎么扯到“持久化”身上去啦?持久化跟配置文件没什么关系吧!
运行时的信息保存到持久存储介质,下次运行再从持久存储介质取出信息,这不叫持久化该叫什么? 从你的这句话里面我看不到“配置文件”这个词! 当然我也可以理解为根据”配置文件“选择持久化的策略:比如DB或者文件 ,然而讨论这些没什么意义吧! 正如前面我发的帖子一样,动不动利用配置文件的形式设计应用的思路不可取。 |
|
返回顶楼 | |
发表时间:2004-10-26
scud 写道 还是用配置文件好一点吧,持久化和配置文件相对而言, 估计还是配置文件更容易处理一点
真奇怪,难道把信息保存在配置文件就不叫“持久化”了吗?联系到前面那位同志的质疑,真不知道你们是怎么理解“持久化”这个词的。难道在你们眼里,只有把信息放进数据库才叫“持久化”不成? |
|
返回顶楼 | |
发表时间:2004-10-26
:twisted:
|
|
返回顶楼 | |
发表时间:2004-10-26
gigix 写道 scud 写道 还是用配置文件好一点吧,持久化和配置文件相对而言, 估计还是配置文件更容易处理一点
真奇怪,难道把信息保存在配置文件就不叫“持久化”了吗?联系到前面那位同志的质疑,真不知道你们是怎么理解“持久化”这个词的。难道在你们眼里,只有把信息放进数据库才叫“持久化”不成? 请你不要把人家都当成都跟你以前一样苯! |
|
返回顶楼 | |
发表时间:2004-10-26
嘿嘿 我的意思是说: 那种特殊格式的,非文本格式的持久化
毕竟和"普通的常用的"配置文件还是有区别的吧 |
|
返回顶楼 | |
发表时间: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的同时, 读取配置文件, 虽然不能提高性能, 但是可以让客户不會有"真慢"的感觉. 不了解你是什么性能受到影响, 妄自揣度. |
|
返回顶楼 | |