自己开发的一个小系统,做了一些功能,用朋友的机器来做客户端压力测试,一个TOMCAT 6.0放在我自己开发的机器上(2年前买的笔记本,型号ThinkPad T61),(ADSL 4MB(上传多少?512KB?)),INTEL 2.0(Duo 2),2GB内存,双硬盘,WIN XP专业版,OK。系统采用了用烂的框架:Struts2,Spring2,Hibernate3。页面使用了JSP与Struts2的标签,而非FREEMAKE这类摸板。无集群,无消息传递,无分布式数据库,无分布式环境。
LoadRunner一启动,HTTP压力测试开启,100个虚拟用户,自定义环境,2个2个并发同时,1分30秒结束,快速递增。前期,OK,程序运转良好,虽然有连接池,但是明显访问数据库次数太多,此时就开始后悔了,没有给加上中间业务层缓存,到了后面10个并发的时候,程序明显吃不住了,多了很多异常,我还奇怪,难道我程序问题?立刻就把测试停止,看着异常,我很无语,什么怪事都有,连接池找不到?字符串截断OUT OF Bound?我晕,我在程序前面可是做了长度IF语句的检查的呀,怎么会OUT OF Bound?还有些更离奇的错误。先不管了,先看LoadRunner控制台,结果错误有一堆,打开一开,几乎都是些无法连接服务器?我一想,难道是网络问题?睹了?在看看失败的业务,很少,除了那个OUT OF Bound,别的都还算运行正常。
后悔了,后悔了,怎么样提升性能,缓存,还是缓存,我终于意识到缓存的重要性了,立刻用RAR打开ehcache-1.2.4.jar,在用JD反编,结果发现ehcache似乎也并不复杂,断断续续的看了几个CLASS,感觉还行,在看看JIVE论坛的业务层缓存实现,在想想HIBERNATE用那该死的二级缓存缩头缩脑,load一圈,最后还没中一个,就火,索性需要缓存的,不改变的地方直接用了findByHQLCache,会改变的地方大对用了FIND,完蛋了,没有缓存,无状态到是爽了,但是访问数据库来个不停,哎哎哎,看样子还是得从缓存下手啊。
SPRING AOP的企业级事务处理很爽,getHibernateTemplate,HibernateCallback用的到是很爽,SERVICE层事务一配置,爽。不爽的就是访问数据库的次数太多,研究,必须研究JIVE的那个业务层缓存,从设计上入手,业务层级别的缓存,多线层,设计模式的灵活运用,等等,系统才能真正的高效。
不废话了,看书,研究,学习。
最近许多同学说我太疯狂,其实:别人笑我太疯癫,我笑别人看不穿。
分享到:
相关推荐
本篇将深入探讨使用Apache JMeter进行压力测试的实践方法,结合“压力测试Demo jmeter”这一主题,我们将详细解析如何通过JMeter工具进行有效的压力测试,并结合“userlist.csv”用户列表数据文件和“压力测试.jmx”...
android 串口测试demo 代码简单 无bug 完美运行 android 串口测试demo 代码简单 无bug 完美运行 android 串口测试demo 代码简单 无bug 完美运行 android 串口测试demo 代码简单 无bug 完美运行 android 串口测试demo...
WebRTC(Web Real-Time Communication)是一项开放的...通过学习和研究这个测试通过的Demo,开发者可以更好地理解WebRTC的实际应用,并将其应用于自己的项目中,实现类似视频会议、在线教育、远程医疗等实时通信场景。
老化测试在IT行业中,特别是在移动设备的开发和质量控制阶段,是一种重要的测试方法。...在进行老化测试时,应结合其他测试方法,如压力测试、性能测试等,以确保设备在各种条件下都能保持高效稳定的运行。
在测试DEMO中,我们需要创建另一个项目作为服务消费者。这里,我们会引入服务提供者的依赖,并通过`<dubbo:reference>`标签引用服务。这样,我们就可以在消费者项目中像调用本地方法一样调用远程服务。 3. **注册...
本教程将详细解释如何在Eclipse环境中编译运行Fresco库项目和FrescoDemo测试项目,这对于那些仍在使用Eclipse的开发者来说非常有价值。 首先,我们需要了解Fresco的核心特性。Fresco采用了先进的内存管理机制,包括...
这个"android触摸屏测试程序demo"是一个专门用于验证和评估Android设备触摸屏功能的工具。下面我们将深入探讨Android触摸屏测试的相关知识点,并结合"EngineeringTest"这个可能的测试程序进行说明。 1. **触摸屏...
这个"直播拉流推流测试demo"是专为测试拉流和推流功能而设计的,它利用了Qt库和AV(Audio Video)框架,提供了一种高效、低延迟的解决方案。以下是对这个demo涉及的技术点的详细解释: 1. **RTMP协议**:RTMP(Real...
【二级分类demo】是一个模拟京东、天猫等电商平台产品分类界面的示例项目,旨在帮助开发者快速构建类似功能。这个demo的核心在于实现一个清晰、易用的二级分类展示系统,允许用户方便地浏览和筛选不同类别下的商品。...
在这个场景中,"music-demo测试集成demo" 提供了一个基于Vue.js框架的音乐应用示例,让我们来深入探讨这个项目。 Vue.js是一款轻量级的前端JavaScript框架,以其易学易用、灵活性高和性能优异的特点深受开发者喜爱...
《SpringBoot项目前后端完整DEMO详解》 在IT领域,SpringBoot框架因其简洁的配置、快速的开发特性,已经成为企业级应用开发的首选。配合Mybatis Generator与Vue.js等前端技术,可以构建出高效、易维护的Web应用。...
Spring框架则是Java企业级应用的核心组件,它提供了依赖注入(DI)和面向切面编程(AOP)等功能,增强了代码的可测试性和模块化。在这个电商Demo中,Spring作为容器管理所有bean的生命周期,包括Struts2和Hibernate...
【资源说明】 1、该资源包括项目的全部源码,下载可以直接使用! 2、本项目适合作为计算机、数学、电子信息等专业的课程设计、期末大作业和...基于Suricata简单的网络入侵检测系统demo源码+项目说明(毕业设计).zip
2. 项目调试:在项目实施阶段,开发人员可以利用clientDEMO进行网络环境的测试和调试,确保项目部署的顺利进行。 3. 教学培训:在教学或培训中,clientDEMO可以作为实践工具,让学生更好地理解和掌握网络监控和调试...
网络游戏防沉迷实名认证系统 API Java版Demo是一个用于网络游戏中的重要工具,旨在限制未成年人过度游戏,保障他们的健康和学习时间。这个Demo提供了完整的接口测算代码,开发者只需替换特定的ID,即可快速接入并...
综上所述,这个DEMO为学习和实践OpenCvSharp提供了良好的起点,开发者可以通过运行和修改代码,深入了解和掌握数字图像处理的各个方面,并将其应用到自己的项目中。无论是初学者还是经验丰富的开发者,都能从中受益...
【 Maven 构建的 Java 项目 Demo 深度解析】 在软件开发中,Maven 是一个广泛应用的项目管理和综合工具,尤其对于Java开发者来说,它简化了构建、依赖管理和项目文档生成的过程。本篇文章将深入探讨 Maven 如何用于...
【描述】:“自己的做的demo 用做测试 有soap okhttp andBase” 描述中提到的几个关键词为我们提供了更深入的信息。首先,“用做测试”说明这个demo是为了验证某些代码或功能是否正常工作而创建的。接着,“soap”...
Android 单元测试、Monkey、LeakCanary测试demo项目 核心要点: 单元测试覆盖,提高开发、测试效率,保证底层基础类型的正确性. 测试对象: 非UI的Class都可以进行单元测试. Monkey 压力测试 配合 LeakCanary, 获取...
在实际应用中,开发者会基于这些基本组件构建更复杂的测试场景,例如模拟不同的网络环境,进行压力测试,或者集成到持续集成/持续部署(CI/CD)流程中,以确保每次更新后WiFi功能仍然正常工作。通过学习和分析这个...