实验室实习报告刘澜涛00848200收获javaRMI机制Jmeter测试工具.ppt

实验室实习报告刘澜涛00848200收获javaRMI机制Jmeter测试工具.ppt

  1. 1、本文档共20页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验室实习报告刘澜涛00848200收获javaRMI机制Jmeter测试工具.ppt

实验室实习报告 刘澜涛收获 java RMI机制 Jmeter测试工具 java 线程池机制 工作进展情况 java RMI机制 java RMI机制通俗的说就是客户端利用服务器端对象的替身(Stub),像调用本地对象的方法一样来调用服务器端对象的方法。 服务器段方法执行完毕后,客户端像获得本地对象参数一样获得服务器端返回的参数 RMI机制为开发者屏蔽了底层的通信细节。 编写java RMI程序 远程对象接口 需要继承Remote类 服务器端远程对象实现 实现远程对象接口的方法 此类中实现的方法在服务器端执行 服务器端程序 利用Naming.bind注册服务器端对象 编写java RMI程序 客户端程序 通过Naming.lookup()查找指定服务器上的对象 查找到对象后则可直接调用该对象的方法 客户端代码存根 利用rmic生成服务器端的代码存根*_Stub.class Jmeter测试工具 Jmeter测试工具是Apache公司开发的基于java的开源压力测试工具,是100%用java实现的。 其利用大量的客户端线程来模拟大量的客户端请求,从而进行压力测试。 利用Jmeter进行测试 建立线程组(Thread Group) Thread Group是任何一个测试计划的开始点,可以设置线程数量,建立所有线程的最短时间,每一个线程循环的次数 建立取样器(Sampler) Sampler 告知JMeter 发送请求到server 端 JMeter自带的Sampler有FTP、HTTP、JDBC、Java Object、LDAP、SOAP/XML-RPC、Web Service 可以利用java request sampler来实现自己的取样器,我的RMI测试就是利用JMeter的API自己实现取样器来实现的。 利用Jmeter进行测试 建立监听器(Listener) 用来统计测试结果。 JMeter中有大量的自带监听器,可以方便地生成测试数据图表。 对于复杂的测试计划还可使用controller等工具来实现复杂的测试逻辑。 Java线程池机制 Java的线程池类为java.util.concurrent.ThreadPoolExecutor ThreadPoolExecutor的常用构造方法为: ThreadPoolExecutor( int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit unit, BlockingQueueRunnable workQueue, RejectedExecutionHandler handler) Java线程池机制 参数作用: corePoolSize: 线程池维护线程的最少数量 maximumPoolSize:线程池维护线程的最大数量 keepAliveTime: 线程池维护线程所允许的空闲时间 unit: 线程池维护线程所允许的空闲时间的单位 workQueue: 线程池所使用的缓冲队列 handler: 线程池对拒绝任务的处理策略 Java线程池机制 当一个任务通过execute(Runnable)方法欲添加到线程池时: 如果此时线程池中的数量小于corePoolSize,即使线程池中的线程都处于空闲状态,也要创建新的线程来处理被添加的任务。 如果此时线程池中的数量等于 corePoolSize,但是缓冲队列 workQueue未满,那么任务被放入缓冲队列。 java线程池机制 l 如果此时线程池中的数量大于corePoolSize,缓冲队列workQueue满,并且线程池中的数量小于maximumPoolSize,建新的线程来处理被添加的任务。 l 如果此时线程池中的数量大于corePoolSize,缓冲队列workQueue满,并且线程池中的数量等于maximumPoolSize,那么通过 handler所指定的策略来处理此任务。 l 当线程池中的线程数量大于 corePoolSize时,如果某线程空闲时间超过keepAliveTime,线程将被终止。这样,线程池可以动态的调整池中的线程数。 Java线程池机制 也就是:处理任务的优先级为:核心线程corePoolSize、任务队列workQueue、最大线程maximumPoolSize,如果三者都满了,使用handler处理被拒绝的任务。 通过向ThreadPoolExecutor的构造方法中传入不同的参数,我们可以建立各种各样的线程池。 工作进展情况 第一阶段自己实现多线程客户端程序,进行压力测试,得到的初步结论是: RMI的线程池大小非固定 当

您可能关注的文档

文档评论(0)

youbika + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档