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();
}
}
分享到:
相关推荐
2. 压测ES:esrally可以模拟ES的压测过程,帮助用户了解ES的性能。 3. enchmark测试:esrally可以用于benchmark测试,帮助用户了解ES的性能。 esrally是一个功能强大且易于使用的压测工具,能够帮助用户深入了解ES...
- 特点:简单易操作,但自身环境及依赖服务的环境不够真实,可能会影响压测结果的准确性。 - 适用场景:初步测试、小规模压测。 2. **线上环境**: - 特点:环境更接近实际生产环境,结果更为可靠;但操作复杂度...
这个名为"springcloud Gateway网关-压测用.zip"的压缩包包含了一个用于性能测试的配置,目的是评估和优化Gateway的处理能力。下面我们将深入探讨SpringCloud Gateway的相关知识点,以及如何使用性能测试工具进行压测...
MQTT(Message Queuing Telemetry Transport)是一种轻量级的发布/订阅消息协议,设计思想是开放、简单、低开销、可靠,并且适用于受限环境,如移动设备或低带宽、高延迟的网络连接。MQTT广泛应用于物联网(IoT)领域...
模拟微信支付场景,方便支付压力测试 不提供结算+账单下载等详细操作 只是提供简单的入口测试
【标题】cpp-Webbench:Linux环境下的简单网站压力测试工具 【正文】 Webbench是一款开源的、基于C++编写的网站压力测试工具,专为Linux操作系统设计。它能够模拟多个客户端并发请求,以评估服务器的性能和负载...
本示例提供了一个简单的压测脚本,可能包含以下元素: - 线程组:设定并发用户数量和循环次数。 - HTTP请求默认值:设置公共的服务器信息。 - HTTP请求 sampler:针对特定URL进行GET或POST请求,可能包含参数和断言...
例如,通过改变 `-c` 和 `-t` 参数,我们可以模拟不同级别的并发访问,分析服务器的性能变化。 ### 六、结论 wrk作为一款强大的HTTP压力测试工具,因其高效、灵活的特点,在IT行业中被广泛应用。了解并熟练使用wrk...
这个插件的使用非常简单,用户只需将提供的`jmeter-dubbo-2.7.1-jar-with-dependencies.jar.zip`文件解压,将得到的`jmeter-dubbo-2.7.1-jar-with-dependencies.jar`添加到JMeter的lib目录下。重启JMeter后,就可以...
下面我们将详细探讨JMeter的安装过程以及基本的压测使用步骤。 1. **JMeter安装** JMeter的安装非常简单,因为它是免安装的。下载的压缩包名为`apache-jmeter-5.2.1`,解压到任意目录即可。打开解压后的文件夹,...
在本例中,我们将运行一个简单的用户登录场景,并设置绝对并发的方式来模拟多个用户同时登录。 步骤四:分析结果 在分析结果中,我们可以查看测试结果,包括性能分析信息、图表和报告。这些信息可以帮助我们标识...
本工具实现了CMPP2.0和CMPP3.0服务端的简单应答功能,可以模拟真实的短信网关,方便测试客户端的兼容性和性能。 SGIP(Short Message Gateway Interworking Protocol)是另一种短消息网关交互协议,由中国电信制定...
go 实现的压测工具,每个用户用一个协程的方式模拟,最大限度的利用 CPU 资源 1.2 项目体验 可以在 mac/linux/windows 不同平台下执行的命令 压测工具下载地址 参数说明: -c 表示并发数 -n 每个并发执行请求的次数...
“memc”是指memcached本身,而“ssdp”可能代表简单服务发现协议(Simple Service Discovery Protocol),这是一种网络协议,常用于家庭网络设备如智能电视、打印机等的自动发现。在memcached的上下文中,可能意味...
介绍:Webbench是一个在linux下使用的非常简单的网站压测工具。它使用fork()模拟多个客户端同时访问我们设定的URL, 测试网站在压力下工作的性能,最多可以模拟3万个并发连接去测试网站的负载能力。
例如,执行一个简单的GET请求: ```bash python webenchmark.py -m GET -u http://example.com ``` 若要进行身份认证,可以添加`-a`参数: ```bash python webenchmark.py -m GET -u ...
下面是一个简单的`Locust`脚本示例,用于模拟GET请求: ```python from locust import HttpUser, task, between class WebsiteUser(HttpUser): wait_time = between(5, 15) # 每个请求之间的随机等待时间 @task...
4. **ab压测工具**: ab(ApacheBench)是Apache HTTP服务器自带的一款简单但功能强大的压力测试工具。它主要用于测试Web服务器的性能,能模拟多个并发用户进行HTTP请求。ab提供了一些基本的统计报告,如平均响应时间...
Webbench是一款专为Linux操作系统设计的简单而强大的网站压力测试工具。它的主要功能是通过模拟大量并发客户端,对目标URL发起请求,以评估网站在高负载条件下的性能和稳定性。这款工具采用C语言编写,其源代码简洁...