- 博客(13)
- 收藏
- 关注
原创 SSL协议握手时Nginx的性能瓶颈在哪里?TLS通讯过程通讯过程中双方主要想完成四个目的1.验证身份2.达成安全套件共识3.传递并生成密钥4.加密通讯
2.Sever Hello 我们的Nginx它会有一个自己支持的加密算法的列表以及它倾向于使用哪一个加密算法套件,这里Nginx它会选择一套它最喜欢的加密套件发送给客户端\n如果我们想复用session也就是Nginx打开了session cache,希望在一天内端口连接的客户端不用再次协商秘钥,可以直接复用之前的秘钥Sever Hello信息中主要发送究竟我们选择哪一个安全套件。9.这里我们主要看它的算法性能,Nginx在握手的时候,主要看它的椭圆加密算法和RSA非对称加密算法这样的性能\。
2024-02-17 09:34:42 271 1
原创 缓存穿透Cache Penetration,缓存击穿Cache Breakdown,缓存雪崩Cache Avalanche
(2)缓存击穿(Cache Breakdown):指缓存中某个热点数据失效,此时有大量并发请求同时访问。(3)缓存雪崩(Cache Avalanche):指缓存中大量的数据失效,导致大量请求直接访问数据库,1)缓存穿透(Cache Penetration):指查询一个不存在的数据,由于缓存中没有数据,所以这个查询请求会直接穿过缓存层,到达数据库层,造成了数据库的压力。这个失效的数据,导致这些请求直接访问数据库,造成数据库压力过大,甚至导致数据库崩溃。从而导致请求直接访问数据库,从而引起数据库压力过大。
2024-02-16 22:05:25 466 1
原创 卷积神经网络
权值共享其实就是对图像用同样的卷积核进行卷积操作,也就意味着第一个隐藏层的所有神经元所能检测到处于图像不同位置的完全相同的特征。其主要的能力就能检测到不同位置的同一类型特征,也就是卷积网络能很好的适应图像的小范围的平移性,即有较好的平移不变性(比如将输入图像的猫的位置移动之后,同样能够检测到猫的图像)局部感受野:由于图像的空间联系是局部的,每个神经元不需要对全部的图像做感受,只需要感受局部特征即可,然后在更高层将这些感受得到的不同的局部神经元综合起来就可以得到全局的信息了,这样可以减少连接的数目。
2024-02-14 10:05:12 355 2
原创 卷积神经网络
其主要的能力就能检测到不同位置的同一类型特征,也就是卷积网络能很好的适应图像的小范围的平移性,即有较好的平移不变性(比如将输入图像的猫的位置移动之后,同样能够检测到猫的图像)下采样层:因为对图像进行下采样,可以减少数据处理量同时保留有用信息,采样可以混淆特征的具体位置,因为某个特征找出来之后,它的位置已经不重要了,我们只需要这个特征和其他特征的相对位置,可以应对形变和扭曲带来的同类物体的变化。卷积层:因为通过卷积运算我们可以提取出图像的特征,通过卷积运算可以使得原始信号的某些特征增强,并且降低噪声。
2024-02-14 10:01:46 393 1
原创 java多线程
2. 实现Runnable接口:创建一个实现了Runnable接口的类,并实现其run()方法,该方法中定义了线程要执行的任务。然后创建该类的对象,并将其作为参数传递给Thread类的构造方法,最后调用start()方法启动线程。1. 继承Thread类:创建一个继承自Thread类的子类,并重写run()方法,该方法中定义了线程要执行的任务。Java多线程还提供了一些常用的线程控制方法,如sleep()、join()、yield()等,用于控制线程的执行顺序和时间。
2024-02-14 09:52:21 404 1
原创 卷积神经网络
在深度学习中,卷积神经网络(CNN,或ConvNet)是一类人工神经网络(ANN),最常用于分析视觉图像。CNN也被称为移位不变或空间不变的人工神经网络(SIANN),基于卷积核或过滤器的共享权重架构,沿着输入特征滑动并提供称为特征图的平移不变的响应。训练的时候在每一个epoch,将训练集的准确率、召回率和精度以及测试集的准确率、召回率和精度写到tensorboardX的log中。本文是一个cnn的starter项目,cnn训练代码是通用的,只需要重新设计网络和准备数据就可以适配到其他项目中。
2024-02-13 10:19:22 236
原创 哈希算法Hash Funcation
最常用于加密的哈希算法是 MD5(MD5 Message-Digest Algorithm,MD5 消息摘要算法)和 SHA(Secure Hash Algorithm,安全散列算法)。MD5不可逆的原因是其是一种散列函数,使用的是hash算法,在计算过程中原文的部分信息是丢失了的。如果我们拿到一个 MD5 哈希值,希望通过毫无规律的穷举的方法,找到跟这个 MD5 值相同的另一个数据,那耗费的时间应该是个天文数字。所以,即便哈希算法存在冲突,但是在有限的时间和资源下,哈希算法还是被很难破解的。
2024-02-13 00:23:39 338
原创 希尔排序是一种改进的插入排序算法,它的基本思想是将待排序的数组按照一定的间隔进行分组,对每组使用插入排序算法进行排序,然后缩小间隔,再对分组进行排序,直到间隔为1为止
shellSort 函数接受一个整数数组作为输入,并使用希尔排序算法对其进行排序。外部循环使用一个间隔变量 gap ,初始值为数组长度的一半,每次循环将 gap 除以2,直到 gap 为1。内部循环从第 gap 个元素开始,将要插入的元素与已排序部分的元素进行比较,如果要插入的元素小于已排序部分的元素,则将已排序部分的元素向右移动 gap 个位置,以便为要插入的元素腾出空间。在内部循环结束后,我们将要插入的元素插入到正确的位置。在每次外部循环迭代后,我们可以确保数组的前 gap 个元素已经被排序。
2024-02-13 00:02:18 103
原创 冒泡排序算法
冒泡排序(BubbleSort)的基本概念是:依次比较相邻的两个数,将小数放在前面,大数放在后面。即首先比较第1个和第2个数,将小数放前,大数放后。然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后。重复以上过程,仍从第一对数开始比较(因为可能由于第2个数和第3个数的交换,使得第1个数不再小于第2个数),将小数放前,大数放后,一直比较到最大数前的一对相邻数。
2024-02-12 23:49:38 189
原创 雪花算法生成ID
生成ID的方法是加了synchronized关键词,确保线程安全,否则在并发情况下,生成的ID就有可能重复了,同一毫秒生成多个ID时,根据雪花算法的组成,如果同一台机器同一毫秒需要生成多个ID,因为毫秒的时间戳,机器工作ID一样,则前52位一致,所以需要靠后12位的序列号来区分。timestamp记录了上一次生成ID的毫秒的时间戳,如果同一毫秒生成多个id,则两者相等,通过如下代码来生成序列。上述的sequencebits为序列号,这里的定义的12,则要运行如下代码。Java版本的具体实现。
2024-02-12 21:12:58 905
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人