巧用文件保存对象提高JSP性能

随着WEB技术的发 展,企业级三层Web应用已经非常流行了,以Servlet技术为例,Web浏览器,Servlet中间层,后台数据库服务器构成了这三层结构,结构非常 清晰,对设计和开发带来了很多方便,但是大家都知道,层与层之间连接,再加上大量的逻辑运算和数据读取放在了中间层服务器端完成,导致了Web的性能问题 一直使开发人员很头疼。

我 的想法是把对象保存为文件的形式,这里文件的格式很多,可以是xml(标准化越来越近了)格式的,也可以是通过序列化的对象产生的自定义的文件,这里我讲 的是后一种。中间层读取数据时不是从数据库中读取,而是读本地的文件,新增,修改时也是一样。减少了中间层服务器连接数据库服务器的次数,利用读取和写中 间层服务器的硬盘文件来代替去操作数据库,提高了jsp(SUN企业级应用的首选)的性能。

具体实现描述如下:以文档对象(Document)为例,我的文档数据表在数据库中保存一份,文档对象以文件的形式在中间层服务器本地硬盘保存一份,用户 进入阅读界面阅读一篇文档时,这个页面根据所请求的文档ID会生成一个文档对象,Document doc=new Document(ID),然后文档的其他属性从以文档ID命名的文件中获取,

FileInputStream fis=new FileInputStream(doc.getID());

ObjectInputStream ois=new ObjectInputStream(fis);

doc =(Document)os.readObject();

(标准化越来越近了):namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

新增或修改文档时:

Document doc=new Document();

doc.setID(…);

doc.setTitle(…);

doc.setKeyWord(…);

FileOutputStream fos=new FileOutputStream(doc.getID());

ObjectOutputStream oos=new ObjectOutputStream(fos);

oos.writeObject(doc);

oos.flush();

产 生新的或覆盖原有的文件,在用户阅读这篇文档的时候(在这个系统中当新增或修改完文档后马上转入浏览该文档页面),我在后台将这个文档的属性加入到数据库 中,这样用户不用等到所有的操作完成之后才能看到页面,这样也分摊了中间层服务器的负担,因为文档表关联了很多的视图,所以新增或修改的时候我同时更新了 文件和数据表,而像评论,日志这样独立的表,可以只用更新相应文件就可以了,等到了晚上中间层服务器空闲的时候再来更新评论,日志表.这样效果会更好。想 了解更多编程语言教程知识可登陆e良师益友网。

时间: 2024-10-02 12:20:05

巧用文件保存对象提高JSP性能的相关文章

用缓冲技术提高JSP应用的性能和稳定性之OSchche应用(3)

Oscache 特点 缓存任何对象,你可以不受限制的缓存部分jsp页面或HTTP请求,任何java对象都可以缓存. 拥有全面的API--OSCache API给你全面的程序来控制所有的OSCache特性. 永久缓存--缓存能随意的写入硬盘,因此允许昂贵的创建(expensive-to-create)数据来保持缓存,甚至能让应用重启. 支持集群--集群缓存数据能被单个的进行参数配置,不需要修改代码. 缓存记录的过期--你可以有最大限度的控制缓存对象的过期,包括可插入式的刷新策略(如果默认性能不需要

python 保存对象文件

之前用 R 语言一直感觉 .Rdata 格式的文件很好用,可以把每次执行的中间文件保存便于下次调用,刚熟悉 Python 还没接触这块知识,所以有时候做项目不太顺手,索性上网搜了下,整理如下: 模型存档 ############# # joblib 库 from sklearn.linear_model import LogisticRegression from sklearn.externals import joblib # 模型保存 lr_model = LogisticRegressi

利用 squid 反向代理提高网站性能

本文在介绍 squid 反向代理的工作原理的基础上,指出反向代理技术在提高网站访问速度,增强网站可用性.安全性方面有很好的用途.作者在具体的实验环境下,利用 DNS 轮询和 Squid 反向代理技术,实现了网站的负载均衡,从而提高了网站的可用性和可靠性. 现在有许多大型的门户网站如 SINA 都采用 squid 反向代理技术来加速网站的访问速度,可将不同的 URL 请求分发到后台不同的 WEB 服务器上,同时互联网用户只能看到反向代理服务器的地址,加强了网站的访问安全. 反向代理的概念 反向代理

转载--提高C++性能的编程技术

读书笔记:提高C++性能的编程技术 第1章 跟踪范例 1.1 关注点 本章引入的实际问题为:定义一个简单的Trace类,将当前函数名输出到日志文件中.Trace对象会带来一定的开销,因此在默认情况下不会开启Trace功能.问题是:怎么设计Trace类,使得在不开启Trace功能时引入的开销最小. 1.2 使用状态变量开关功能 用宏来开关Trace功能很简单,在不开启时开销完全没有: #ifdef TRACE Trace trace("aaa"); #endif 缺点是每次开关都需要重新

提高mapreduce性能的七点建议

Cloudera提供给客户的服务内容之一就是调整和优化MapReduce job执行性能.MapReduce和HDFS组成一个复杂的分布式系统,并且它们运行着各式各样用户的代码,这样导致没有一个快速有效的规则来实现优化 代码性能的目的.在我看来,调整cluster或job的运行更像一个医生对待病人一样,找出关键的“症状”,对于不同的症状有不同的诊断和处理方式. 在医学领域,没有什么可以代替一位经验丰富的医生:在复杂的分布式系统上,这个道理依然正确—有经验的用户和操作者在面对很多常见问题上都会有“

OneAPM大讲堂 | 提高JavaScript性能的30个技巧

文章系国内领先的 ITOM 管理平台供应商 OneAPM 编译呈现. 您是网站管理员还是网页开发人员?想创建超快速的网站吗? 今天我们来看看 JavaScript,这项神奇而又复杂的技术.它使网站内容更加丰富,但常常出现的运行性能问题又降低了用户的体验.事实已经证明,最佳的终端用户体验能提升网站的转换率.Google搜索排名以及访问者的满意度.高性能的JavaScript意味着会给您和您的公司带来更多更好的业务. 下面我们介绍提高 JavaScript 性能的一些技巧.同样地,这或许可以帮助网站

【转】提高PHP性能的53个技巧

PHP技巧汇总:提高PHP性能的53个技巧用单引号代替双引号来包含字符串,这样做会更快一些.因为PHP会在双引号包围的字符串中搜寻变量,单引号则不会,注意:只有echo能这么做,它是一种可以把多个字符串当作参数的函数译注:PHP手册中说echo是语言结构,不是真正的函数,故把函数加上了双引号).1.如果能将类的方法定义成static,就尽量定义成static,它的速度会提升将近4倍.2.$row[*id]*的速度是$row[id]的7倍.3.echo 比 print 快,并且使用echo的多重参

使用 libevent 和 libev 提高网络应用性能

使用 libevent 和 libev 提高网络应用性能 Martin C. Brown, 作家, Freelance 简介: 构建现代的服务器应用程序需要以某种方法同时接收数百.数千甚至数万个事件,无论它们是内部请求还是网络连接,都要有效地处理它们的操作.有许多解决方案,但是 libevent 库和 libev 库能够大大提高性能和事件处理能力.在本文中,我们要讨论在 UNIX® 应用程序中使用和部署这些解决方案所用的基本结构和方法.libev 和 libevent 都可以在高性能应用程序中使

提高PHP性能的方法

下面的文字从Dustin Whittle的 Scaling PHP in the real world 摘抄而来.原文作于2013年,有些信息可能不是那么新了. https://speakerdeck.com/dustinwhittle 性能的提高,对于高并发访问量的应用来说,至关重要.本文主要是对上文提到的各种方法进行进一步的解释. Opcode Cache后台用queue来处理工作 (doing work in the background with queues)部署用HTTP cachi