`

简单的压测模拟

阅读更多
import java.time.Duration;
import java.time.LocalDateTime;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Semaphore;
import java.util.concurrent.atomic.AtomicInteger;

public class CountExample {
	
	private static final int clientTotal = 5000;
	
	private static final int threadTotal = 8;
	
	private static AtomicInteger count = new AtomicInteger(0);
	
	public static void main(String... args) {
		
		ExecutorService executorService = Executors.newFixedThreadPool(threadTotal);
		final CountDownLatch latch = new CountDownLatch(clientTotal);
		final Semaphore semaphore = new Semaphore(threadTotal);
		LocalDateTime start = LocalDateTime.now();
		for (int i = 0; i < clientTotal; i++) {
			
			executorService.execute(() -> {
				
				try {
					
					semaphore.acquire();
					add();
					System.out.println(String.format("add() invoked by %s => %d", Thread.currentThread().getName(), count.get()));
					semaphore.release();
					latch.countDown();
				} catch (InterruptedException e) {

					e.printStackTrace();
				}
			});
		}
		try {
			
			latch.await();
			LocalDateTime end = LocalDateTime.now();
			System.out.println(String.format("cost time millis : %d", Duration.between(start, end).toMillis()));
			executorService.shutdown();
			System.out.println(String.format("count:%d", count.intValue()));
		} catch (InterruptedException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

	private static void add() {
		
		count.getAndIncrement();
	}
}

分享到:
评论

相关推荐

    es压测esrally.docx

    2. 压测ES:esrally可以模拟ES的压测过程,帮助用户了解ES的性能。 3. enchmark测试:esrally可以用于benchmark测试,帮助用户了解ES的性能。 esrally是一个功能强大且易于使用的压测工具,能够帮助用户深入了解ES...

    阿里线上压测与容量规划实践

    - 特点:简单易操作,但自身环境及依赖服务的环境不够真实,可能会影响压测结果的准确性。 - 适用场景:初步测试、小规模压测。 2. **线上环境**: - 特点:环境更接近实际生产环境,结果更为可靠;但操作复杂度...

    springcloud Gateway网关-压测用.zip

    这个名为"springcloud Gateway网关-压测用.zip"的压缩包包含了一个用于性能测试的配置,目的是评估和优化Gateway的处理能力。下面我们将深入探讨SpringCloud Gateway的相关知识点,以及如何使用性能测试工具进行压测...

    jmeter压测mqtt资源包

    MQTT(Message Queuing Telemetry Transport)是一种轻量级的发布/订阅消息协议,设计思想是开放、简单、低开销、可靠,并且适用于受限环境,如移动设备或低带宽、高延迟的网络连接。MQTT广泛应用于物联网(IoT)领域...

    微信模拟支付场景

    模拟微信支付场景,方便支付压力测试 不提供结算+账单下载等详细操作 只是提供简单的入口测试

    cpp-Webbench是一个在linux下使用的非常简单的网站压测工具

    【标题】cpp-Webbench:Linux环境下的简单网站压力测试工具 【正文】 Webbench是一款开源的、基于C++编写的网站压力测试工具,专为Linux操作系统设计。它能够模拟多个客户端并发请求,以评估服务器的性能和负载...

    TCP服务端(cmpp、sgip压测工具)

    本工具实现了CMPP2.0和CMPP3.0服务端的简单应答功能,可以模拟真实的短信网关,方便测试客户端的兼容性和性能。 SGIP(Short Message Gateway Interworking Protocol)是另一种短消息网关交互协议,由中国电信制定...

    Gatling工具进行web服务压测.docx

    在上面的脚本中,我们定义了一个简单的场景,模拟10个用户同时发起请求,并设置了请求的基本参数。 4. **运行Gatling**:在`/home/ZPJ/gatling-charts-highcharts-bundle-2.2.5/bin/`目录下执行`./gatling.sh`命令...

    Jmeter压测脚本示例

    本示例提供了一个简单的压测脚本,可能包含以下元素: - 线程组:设定并发用户数量和循环次数。 - HTTP请求默认值:设置公共的服务器信息。 - HTTP请求 sampler:针对特定URL进行GET或POST请求,可能包含参数和断言...

    wrk.zip 压测工具wrk 下载

    例如,通过改变 `-c` 和 `-t` 参数,我们可以模拟不同级别的并发访问,分析服务器的性能变化。 ### 六、结论 wrk作为一款强大的HTTP压力测试工具,因其高效、灵活的特点,在IT行业中被广泛应用。了解并熟练使用wrk...

    dubbo压测插件(不需要依赖,支持jmeter各个版本)

    这个插件的使用非常简单,用户只需将提供的`jmeter-dubbo-2.7.1-jar-with-dependencies.jar.zip`文件解压,将得到的`jmeter-dubbo-2.7.1-jar-with-dependencies.jar`添加到JMeter的lib目录下。重启JMeter后,就可以...

    jmeter 压测使用步骤

    下面我们将详细探讨JMeter的安装过程以及基本的压测使用步骤。 1. **JMeter安装** JMeter的安装非常简单,因为它是免安装的。下载的压缩包名为`apache-jmeter-5.2.1`,解压到任意目录即可。打开解压后的文件夹,...

    LoadRunner压力测试简单用户登录-绝对并发-[操作步骤图片]

    在本例中,我们将运行一个简单的用户登录场景,并设置绝对并发的方式来模拟多个用户同时登录。 步骤四:分析结果 在分析结果中,我们可以查看测试结果,包括性能分析信息、图表和报告。这些信息可以帮助我们标识...

    新版memc压测dos memc

    “memc”是指memcached本身,而“ssdp”可能代表简单服务发现协议(Simple Service Discovery Protocol),这是一种网络协议,常用于家庭网络设备如智能电视、打印机等的自动发现。在memcached的上下文中,可能意味...

    go-stress-testing:go 实现的压测工具,ab、locust、Jmeter压测工具介绍【单台机器100w连接压测实战】

    go 实现的压测工具,每个用户用一个协程的方式模拟,最大限度的利用 CPU 资源 1.2 项目体验 可以在 mac/linux/windows 不同平台下执行的命令 压测工具下载地址 参数说明: -c 表示并发数 -n 每个并发执行请求的次数...

    python实现不断模拟客户端请求,实现压力测试

    下面是一个简单的`Locust`脚本示例,用于模拟GET请求: ```python from locust import HttpUser, task, between class WebsiteUser(HttpUser): wait_time = between(5, 15) # 每个请求之间的随机等待时间 @task...

    Webbench_c语言_在linux下使用的非常简单的网站压测工具

    介绍:Webbench是一个在linux下使用的非常简单的网站压测工具。它使用fork()模拟多个客户端同时访问我们设定的URL, 测试网站在压力下工作的性能,最多可以模拟3万个并发连接去测试网站的负载能力。

    Python-Webenchmark一款基于命令行的网站压测小工具

    例如,执行一个简单的GET请求: ```bash python webenchmark.py -m GET -u http://example.com ``` 若要进行身份认证,可以添加`-a`参数: ```bash python webenchmark.py -m GET -u ...

    压力测试工具整理

    4. **ab压测工具**: ab(ApacheBench)是Apache HTTP服务器自带的一款简单但功能强大的压力测试工具。它主要用于测试Web服务器的性能,能模拟多个并发用户进行HTTP请求。ab提供了一些基本的统计报告,如平均响应时间...

    webbench:Webbench是一个在linux下使用的非常简单的网站压测工具。它使用fork()模拟多个客户端同时访问我们设置的URL,测试网站在压力下工作的性能,最多可以模拟3万个并发连接去测试网站的负载能力。Webbench使用C语言编写,代码实在太简洁,子系统加起来不到600行。下载链接:http

    Webbench是一款专为Linux操作系统设计的简单而强大的网站压力测试工具。它的主要功能是通过模拟大量并发客户端,对目标URL发起请求,以评估网站在高负载条件下的性能和稳定性。这款工具采用C语言编写,其源代码简洁...

Global site tag (gtag.js) - Google Analytics