当前位置:网站首页>Concept and implementation of QPS
Concept and implementation of QPS
2022-06-26 03:45:00 【thoughtCodes】
QPS Concept and implementation of
Survive by day and develop by night.
talk is cheap, show me the code,make a better result.
Catalog
summary
QPS Is a very common requirement .
demand :
1.QPS The implementation of the
package qps.demo;
/** * @desc QPS Controller test * @author visy.wang * @date 2020/9/29 10:25 */
public class Main {
/** * In multithreaded environment , Please make sure you get it QPSCtrl Object is the same , * It is recommended to initialize here , Of course, it can also be created in other ways ( But it must be the same ) * Different QPSCtrl Objects are independent of each other */
private static QPSCtrl qpsCtrl1 = QPSCtrl.create(1);
// private static QPSCtrl qpsCtrl2 = QPSCtrl.create(3);
public void test1(int i){
// call ctrl() To achieve QPS The control of
// System.out.println(Thread.currentThread().getName()+"\t"+System.currentTimeMillis()+" Start visiting \n");
// System.out.println(Thread.currentThread().getName());
qpsCtrl1.ctrl();
System.out.println(Thread.currentThread().getName()+"\t"+i+"(I) ");
// System.out.println(System.currentTimeMillis()+"END");
}
// public void test2(int i){
// // beyond QPS Value will block here , Until the next cycle
// qpsCtrl2.ctrl();
// System.out.print(i+"(II) ");
// }
public static void main(String[] args) {
long startTime = System.currentTimeMillis();
// System.out.println(" Start and end "+startTime);
Main testQPS = new Main();
new Thread(()->{
for(int i=1; i<=3; i++){
testQPS.test1(i);
}
}).start();
new Thread(()->{
for(int i=4; i<=6; i++){
testQPS.test1(i);
}
}).start();
long endTime=0L;
new Thread(()->{
for(int i=7; i<=12; i++){
testQPS.test1(i);
}
}).start();
endTime = System.currentTimeMillis();
// System.out.println(" Start and end "+endTime);
// new Thread(()->{
// for(int i=13; i<=18; i++){
// testQPS.test2(i);
// }
// }).start();
System.out.println(" Time consuming "+Long.valueOf(endTime-startTime));
}
}
test log:
Time consuming 90
1656172702613=====================
Thread-2 7(I)
1656172703613=====================
Thread-2 8(I)
1656172704649=====================
Thread-0 1(I)
1656172705656=====================
Thread-0 2(I)
1656172706656=====================
Thread-1 4(I)
1656172707656=====================
Thread-1 5(I)
1656172708656=====================
Thread-1 6(I)
1656172709656=====================
Thread-0 3(I)
1656172710656=====================
Thread-2 9(I)
1656172711656=====================
Thread-2 10(I)
1656172712656=====================
Thread-2 11(I)
1656172713656=====================
Thread-2 12(I)
What I wonder is why the final output takes time ?
Design thinking
nothing
Analysis of implementation ideas
1.QPS Realization
Expand to achieve
Reference here :github: Simply implement the above process :
Entry level implementation :
: Partial source code implementation .
: The source code to achieve
Performance parameter test :
nothing
References and recommended readings
Welcome to , Dear brother , If it helps you , A little praise and a little attention !~
边栏推荐
- 上传文件/文本/图片,盒子阴影
- 763. 划分字母区间
- Open Camera异常分析(一)
- Various errors in kitti2bag installation
- [appium stepping pit] io appium. uiautomator2. common. exceptions. InvalidArgumentException: ‘capabilities‘ are mand
- 云计算基础-0
- MySQL高级部分( 四: 锁机制、SQL优化 )
- 用eclipse连mysql数据库出错然后出现图中的话是咋回事呀
- ABP framework Practice Series (I) - Introduction to persistence layer
- Sqlitestudio download address
猜你喜欢

After Ali failed to start his job in the interview, he was roast by the interviewer in the circle of friends (plug)

When the tiflash function is pushed down, it must be known that it will become a tiflash contributor in ten minutes

阿里云函数计算服务一键搭建Z-Blog个人博客

progress bar

XGBoost, lightGBM, CatBoost——尝试站在巨人的肩膀上

Qixia fire department carries out fire safety training on construction site

ASP. Net core introduction

Request object, send request

ABP framework Practice Series (I) - Introduction to persistence layer

Open Camera异常分析(一)
随机推荐
QPS的概念和实现
解决uniapp插件robin-editor设置字体颜色和背景颜色报错的问题
上传文件/文本/图片,盒子阴影
EF core Basics
mysql存儲過程
Uni app custom selection date 1 (September 16, 2021)
2022.6.23-----leetcode.30
Plug in installation and shortcut keys of jupyter notebook
HL7Exception: Can‘t XML-encode a GenericMessage. Message must have a recognized struct
Uni app custom navigation bar component
mysql存储过程
Nepal graph learning Chapter 3_ Multithreading completes 6000w+ relational data migration
Kotlin quick start
个人用同花顺软件买股票安全吗?怎么炒股买股票呢
2022.6.25-----leetcode.剑指offer.091
Procédures stockées MySQL
面试阿里测开岗失败后,被面试官在朋友圈吐槽了......(心塞)
Various errors in kitti2bag installation
Add an "open search description" to the site to adapt to the browser's "site search"“
Partition, column, list