pq

python 学习笔记---Locust 测试服务端性能

自作多情 提交于 2021-02-18 13:43:27
由于人工智能的热度, python目前已经成为最受欢迎的编程语言,一度已经超越Java 。 本文将介绍开源的python 测试工具: locust 使用步骤: 1. 安装python 3.0以上版本 2. 安装Pip 3. 安装locust pip install locustio (windows系统下) 4. 阅读或者下载 locust 源码 一、Locust 的基本实现原理 服务端性能测试工具最核心的部分是压力发生器,核心要点有两个,一是真实模拟用户操作,二是模拟有效并发。 在 Locust 测试框架中,测试场景是采用纯Python脚本。对于最常见的 HTTP(S) 协议的系统, Locust 采用Python的 requests 库作为客户端,而对于其它协议类型的系统, Locust 也提供了接口,只要我们能采用Python编写对应的请求客户端,就能方便地采用 Locust 实现压力测试。从这个角度来说, Locust 可以用于压测任意类型的系统。 在模拟有效并发方面, Locust 的优势在于其摒弃了进程和线程,完全基于事件驱动,使用 gevent 提供的 非阻塞IO 和 coroutine 来实现网络层的并发请求,因此即使是单台压力机也能产生数千并发请求数;再加上对分布式运行的支持,理论上来说, Locust 能在使用较少压力机的前提下支持极高并发数的测试。 二、

【清华集训2016】数据交互

久未见 提交于 2021-02-18 09:51:05
题目描述 一个简单的网络系统可以被描述成一棵无根树。每个节点为一个服务器。连接服务器与服务器的数据 线则看做一 条树边。两个服务器进行数据交互时,数据会经过连接这两个服务器的路径上的所有服务 器(包括这两个服务器 自身)。每个数据交互请求都有一个非负的重要度,越重要的请求显然需要得 到越高的优先处理权。此外,如果 在某一个时刻存在一条非常重要(可以看作重要度无穷大)、且数 据量巨大的交互请求,则所有被该交互经过的 服务器都会优先处理这条交互并阻塞,从而导致其他通 过这些服务器的交互出现延迟。现在,你作为一个网络系 统的管理员,要监控整个系统的运行状态。 系统的运行也很简单,在每一个时刻,只有可能出现下列二种事件中 的一种: 1、在某两个服务器之间出现一条新的数据交互请求; 2、某个数据交互请求结束; 我们假设这些事件中的交互请求的数据量都足够小。你的任务是在每一个时刻的事件结束后,求出: 如果突然出现一条非常重要、且数据量巨大的交互请求 那么因其造成延迟的数据交互请求的重要度之和最大可能是多少? 题解 题目是要求:动态维护一些链的集合,每次操作后都要找出一条链,使得和它相交的所有链的权值和最大。 假设我们已经选择了一条链xy,那么我们可以把和它有交的所有链分为三种类型。 1、 LCA(x',y')=LCA(x,y) 这时我们应当在 LCA(x,y) 处贡献一次。 2、 deep

STM32F103最小系统板制作FPV穿越机(从零到起飞全面教程!)

拜拜、爱过 提交于 2021-02-07 11:48:20
STM32F103最小系统板制作FPV穿越机(从零到起飞全面教程!) 前言(心理建设) 上个学期学习了嵌入式开发课程,对于自主开发智能小车和手环产生了浓厚兴趣,但是这些项目都是同学们玩剩下了,所以寒假决定利用stm32F1做无人机,但是无人机的代码工程量很大,一番查找资料后决定制作穿越机,直接烧写固件(其实也是借鉴@caizi大佬),大家可以选择制作空心杯电机(比较便宜,一套动力下来不出50),作者用的是5寸机架加2205电机+30A电调,动力下来就238了全套包括遥控器得400+,所以要入坑的同学请着重考虑噢~ 所需材料准备 CH340串口下载模块1个(2.5元) 淘宝截图哈哈没有广告嫌疑,为了大家购买方便 GY-521加速度计模块1个(3.8元) STM32F103C8T6开发板1个(11.5元) 洞洞板和电阻三极管 机架桨叶20 动力套装238 装机配件(强烈建议买护架) 接收机(我选minibus)和遥控器 电池和平衡充70 有了这些加上焊枪杜邦线就可以开工拉 飞控板焊接 飞控板原理图如下,要焊接的引脚不多,只是注意一下走线,按照自己的意愿来就可以了。我的焊功太差,还请见谅哈哈~ 有三种接收机模式可以选择:SBUS(三根线)、PPM(三根线)、PWM(每个通道都要接线-8根线)。我们这里是sbus,并且去掉了电容、蜂鸣器和稳压管 焊接注意戴口罩,不要心急,争取不要返工

海量数据处理算法与面试题

那年仲夏 提交于 2021-02-06 04:56:26
九章微课 1.最高频 K 项问题 前导问题: 前k大数 在一个整数数组中,找最大的k个数 这个问题有在线和离线两种解法: 离线算法:允许多遍遍历数组。排序后找的方法时间复杂度O(nlogn),但是需要找O(n)的解法。答案就是使用 快速选择算法 ,先一遍遍历找到第k大的数,然后再一遍遍历找到前k大的数,总复杂度为o(n) 在线算法:数据以数据流进入,只允许一遍遍历。 public class topK { /** * @param nums: an integer array * @param k: An integer * @return : the top k largest numbers in array */ public int [] topkOffline( int [] nums, int k) { // 1.离线算法: // 首先一遍遍历找到第K大的数:快速选择算法O(n) int kLargestNum = QuickSelect(nums, k, 0, nums.length - 1 ); int [] res = new int [k]; int i = 0 ; for (Integer num : nums) { if (num >= kLargestNum && i < k) res[i++] = num; } return res; } public

滑动窗口的中位数 · Sliding Window Median

人盡茶涼 提交于 2021-02-04 17:49:00
[抄题]: 给定一个包含 n 个整数的数组,和一个大小为 k 的滑动窗口,从左到右在数组中滑动这个窗口,找到数组中每个窗口内的中位数。(如果数组个数是偶数,则在该窗口排序数字后,返回第 N/2 个数字。) 对于数组 [1,2,7,8,5] , 滑动大小 k = 3 的窗口时,返回 [2,7,7] 最初,窗口的数组是这样的: [ | 1,2,7 | ,8,5] , 返回中位数 2 ; 接着,窗口继续向前滑动一次。 [1, | 2,7,8 | ,5] , 返回中位数 7 ; 接着,窗口继续向前滑动一次。 [1,2, | 7,8,5 | ] , 返回中位数 7 ; [暴力解法]: 时间分析: 空间分析: [思维问题]: 不理解两个heap和窗口的大小关系:把窗口容量全扔进来,具体分到哪个格子另当别论 体会到了treemap相对于heap的优越性:想 romove 哪个点是随便的。注意接口、实现都不是PQ,是 treeset 而且树状的题想想里面装的是 node 还是数字 [一句话思路]: 窗口 移动就是加一个元素、减一个元素,用俩函数实现,所以可以放在maxheap minheap中 [输入量]:空: 正常情况:特大:特小:程序里处理到的特殊情况:异常情况(不合法不合理的输入): [画图]: [一刷]: 窗口满了之后romove第一个点,i - k + 1,不是第i个点,写习惯了就错了

ASP.NET Core分布式缓存Redis主从Sentinel哨兵模式实战演练

浪尽此生 提交于 2021-02-02 13:22:57
一、课程介绍 Redis是被广泛使用的基础软件之一。对于工程师和,架构师,运维人员来说,了解Redis的高可用方案和背后的原理,是必备的基础知识。 “高可用性”(High Availability)通常来描述一个系统经过专门的设计,从而减少停工时间,而保持其服务的高度可用性。 Redis-Sentinel是Redis官方推荐的高可用性(HA)解决方案之一,当用Redis做Master-Slave(主从复制)的高可用方案时,假如master宕机了,它能监控多个master-slave集群,发现master宕机后能进行自动切换。Redis主从切换技术的方法是:当主服务器宕机后,需要手动把一台从服务器切换为主服务器,这就需要人工干预,费事费力,还会造成一段时间内服务不可用。这不是一种推荐的方式,更多时候,我们优先考虑哨兵模式。 1.1、本次分享课程包含知识点如下: ★Redis的三种集群解决方案对比。 ★Redis哨兵模式概述。 ★如何使用Dcoker部署Redis主从切换哨兵模式(一主二从三哨兵)。 1.2、一句话总结今天我们学习达到的目标 在ASP.NET Core中如何使用分布式缓存Redis主从Sentinel哨兵模式实现故障转移。 二、Redis的三种集群解决方案对比 redis有三种集群方式:主从复制,哨兵模式和集群。 1)、Redis主从复制特点

ACM-ICPC 2018 南京赛区网络预赛

泪湿孤枕 提交于 2021-01-14 06:34:18
轻轻松松也能拿到区域赛名额,CCPC真的好难 An Olympian Math Problem 问答 只看题面 54.76% 1000ms 65536K Alice, a student of grade 6 6, is thinking about an Olympian Math problem, but she feels so despair that she cries. And her classmate, Bob, has no idea about the problem. Thus he wants you to help him. The problem is: We denote k! k !: k! = 1 \times 2 \times \cdots \times (k - 1) \times k k ! = 1 × 2 × ⋯ × ( k − 1 ) × k We denote S S: S = 1 \times 1! + 2 \times 2! + \cdots + S = 1 × 1 ! + 2 × 2 ! + ⋯ + (n - 1) \times (n-1)! ( n − 1 ) × ( n − 1 ) ! Then S S module n n is ____________ You are given an integer n n. You

凸包(壳)算法小结

情到浓时终转凉″ 提交于 2021-01-09 02:49:15
凸包专题大概是我做的最 吃shi 考验代码能力的专题…… 然后……大概我们的凸包可以分为静态凸包和动态凸包,从功能上可以分为决策性的凸包和计算几何性的凸包 其实没有多少区别,打就好了 静态凸包啥的我就不介绍怎么打了…… 然后我推荐在弹栈的时候用叉积而不是暴力算斜率,那样讨论好多啊…… 另外,一般我们不会被卡弹栈……但如果被卡时间的话,我们可以考虑二分弹栈,这样并没有什么问题…… 然后我们来看看凸包可以干什么: 题目1:bzoj2402 然后我一开始想歪了……我想直接把(x,y)和(p,q)当作点的坐标然后去凸壳查找 但是这样的决策点是无法定义最优的……在不同的询问点中最优是不同的……很是尴尬 然后我这么弱当然%了题解啊…… 所以我们可以考虑01分数规划,二分答案k,把原来的式子变形得到 $ y_{i}-k*x_{i}+q_{i}-k*p_{i}>=0 $ 然后询问的时候,我们这就是维护一个上凸壳拿一条直线卡一下 可以联系一下高中线性规划的知识 然后我们可以用熟练剖分来解决这个问题,对于链上log次询问我们取最优的最优点即可 这样的复杂度……是$mlog^{4}n$的,但是由于没啥常数,并且数据范围还很小,所以说可以过30000的全部数据 代码: 1 #include <cstdio> 2 #include <cstring> 3 #include <algorithm> 4

HDU 1240 Asteroids! 题解

匆匆过客 提交于 2021-01-06 15:45:22
Asteroids! Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 6174 Accepted Submission(s): 3876 Problem Description You're in space. You want to get home. There are asteroids. You don't want to hit them. Input Input to this problem will consist of a (non-empty) series of up to 100 data sets. Each data set will be formatted according to the following description, and there will be no blank lines separating data sets. A single data set has 5 components: Start line - A single line, "START N", where 1 <= N <= 10. Slice list - A series of N slices.

一文看懂HNSW算法理论的来龙去脉

99封情书 提交于 2020-12-25 08:24:18
HNSW算法----Hierarchcal Navigable Small World graphs,第一贡献者:Y.Malkov(俄) 一.背景介绍 在浩渺的数据长河中做高效率相似性查找一直以来都是让人头疼的问题。比如,我在搜狗app上阅读了一篇文章,推荐系统就应当为我推送与这篇文章最相近的文章,数据库中所有文章是用向量表示的,所以我们要解决的问题就是“找到与这篇文章的向量最相近的几个向量”,然后把这些向量对应的文章推送出去。数据库中的文章千千万,所有用户每秒的请求也是千千万,我们需要又快又准又相对节约资源的办法来解决这个问题。 解决这个问题的方法有很多,PQ,Annoy,HNSW等等。篇幅有限,这篇文章只介绍HNSW算法。 二.朴素想法 朴素想法图 请大家把目光投向上面这张图。假设我们现在有13个2维数据向量,我们把这些向量放在了一个平面直角坐标系内,隐去坐标系刻度,它们的位置关系如上图所示。 朴素查找法:不少人脑子里都冒出过这样的朴素想法,把某些点和点之间连上线,构成一个查找图,存下来备用;当我想查找与粉色点最近的一点时,我从任意一个黑色点出发,计算它和粉色点的距离,与这个任意黑色点有连接关系的点我们称之为“友点”(直译),然后我要计算这个黑色点的所有“友点”与粉色点的距离,从所有“友点”中选出与粉色点最近的一个点,把这个点作为下一个进入点,继续按照上面的步骤查找下去