关于压力测试
2015-12-20 11:36
225 查看
今天写代码的时候突然想到给自己的代码进行压力测试,记得以前用过python写过,但是效果不怎么好,最近java写的比较多,就尝试使用java写一下
先写一下思路:
做压力测试首先要模拟线程并发的状况,那么肯定要使用到多线程的东西,创建线程必不可少,如果只是创建线程的话,肯定不符合场景,因为服务器的硬件资源是有限的
但是用户是可以多个的!比如说用户一台服务器却要服务于100个用户,这台服务器不可能达到100cpu,所以为了充分利用cpu,同时又不要过分使用,就要像tomcat或者spring或sql那样能有线程调度的机制!
Semaphore:用来协调线程,也就是进行调度的一个类,便于合理调用公共资源,大家叫做信号量。
ExecutorService:线程池,早闻大名,直到今日才见到,终于可以使用试试了。用来存放、创建线程。
好,这样用户模拟的东西就有了。那么来说一下具体步骤。
一、创建线程池、线程对象
二、给信号量分配线程
三、设置流,输入参数、输出日志等
这里需要注意的知识点是:
一、文件的读写操作、流的使用
二、线程池、信号量的概念
三、线程的创建
文件读写少不了FileWriter、FileReader,BufferedWriter、BufferedReader、InputStreamReader、OutputStreamWriter,这是有关于流跟缓冲区的使用的父类,注意流的分类1、按照流向分为输入、输出流;2、按照数据形式分为字符、字节流,这两类流 各有优缺点,看使用情况
先写一下思路:
做压力测试首先要模拟线程并发的状况,那么肯定要使用到多线程的东西,创建线程必不可少,如果只是创建线程的话,肯定不符合场景,因为服务器的硬件资源是有限的
但是用户是可以多个的!比如说用户一台服务器却要服务于100个用户,这台服务器不可能达到100cpu,所以为了充分利用cpu,同时又不要过分使用,就要像tomcat或者spring或sql那样能有线程调度的机制!
Semaphore:用来协调线程,也就是进行调度的一个类,便于合理调用公共资源,大家叫做信号量。
ExecutorService:线程池,早闻大名,直到今日才见到,终于可以使用试试了。用来存放、创建线程。
好,这样用户模拟的东西就有了。那么来说一下具体步骤。
一、创建线程池、线程对象
二、给信号量分配线程
三、设置流,输入参数、输出日志等
这里需要注意的知识点是:
一、文件的读写操作、流的使用
二、线程池、信号量的概念
三、线程的创建
文件读写少不了FileWriter、FileReader,BufferedWriter、BufferedReader、InputStreamReader、OutputStreamWriter,这是有关于流跟缓冲区的使用的父类,注意流的分类1、按照流向分为输入、输出流;2、按照数据形式分为字符、字节流,这两类流 各有优缺点,看使用情况
相关文章推荐
- Java NIO 服务器与客户端实现文件下载
- flex @Embed("图片地址")和source="图片地址"的区别
- 一入python深似海--dict(字典)的一种实现
- onPageScrollStateChanged的三种状态
- oracle中ORA-01219错误的解决方法
- 球反弹问题
- CentOS6.4升级Python
- Linux之LVM详解
- Zookeeper (Hadoop 权威指南)
- 顺序表的基本操作
- GCD使用三部曲之:基本用法
- Pazera Free Audio Extractor 中文版 - 轻松将视频背景音乐/对话音频提取出来的免费软件
- Xcode Block retain cycle警告解决办法
- 猴子吃桃问题
- 如何设置系统还原点并将电脑还原至还原点?
- c#日期格式转换大全
- ZooKeeper:一个用于分布式应用的分布式协调服务
- 阿里DNS
- Algorithm --> 求1到n的和
- [LeetCode]Sum Root to Leaf Numbers