- 博客(85)
- 资源 (1)
- 收藏
- 关注
原创 深入了解 GMP
假定当前除了M3和M4为自旋线程,还有M5和M6为空闲的线程(没有得到P的绑定,注意我们这里最多就只能够存在4个P,所以P的数量应该永远是M>=P, 大部分都是M在抢占需要运行的P),G8创建了G9,G8进行了。但新的问题就又出现了,进程拥有太多的资源,进程的创建、切换、销毁,都会占用很长的时间,CPU虽然利用起来了,但如果进程过多,CPU有很大的一部分都被用来进行进程调度了。比如所有的M此时都阻塞住了,而P中还有很多就绪任务,就会去寻找空闲的M,而没有空闲的,就会去创建新的M。
2023-10-08 16:14:03
155
转载 yaf框架学习之安装并配置phpstorm代码提示
yaf简介Yaf框架是大名鼎鼎的鸟哥:惠新宸(英文名:Laruence,PHP开发组核心成员, Zend顾问, PHP7主要开发者)用c语言编写的PHP框架,是一个以PHP扩展形式提供的PHP开发框架,相比于一般的PHP框架, 它更快,更轻便,内存占用率更低,就是本着对性能的追求,Yaf把框架中不易变的部分抽象出来,类如路由、自动加载、bootstrap、分发等,采用PHP扩展去实现,以此来保证性能。安装yaf扩展这里只介绍linux下的安装方法。下载yaf源码下载yaf源码,下载地址:http:
2021-04-21 10:10:27
645
转载 手动安装 php-version
[qian@bogon ~ ]$ mkdir $HOME/.local[qian@bogon ~ ]$ cd $HOME/.local[qian@bogon .local ]$ git clone https://github.com/wilmoore/php-version.git[qian@bogon .local ]$ source $HOME/.local/php-version/php-version.sh//测试 查看当前php版本[qian@bogon .local ]...
2020-12-28 18:17:57
345
转载 tcp
前言TCP 性能的提升不仅考察 TCP 的理论知识,还考察了对于操作系统提供的内核参数的理解与应用。TCP 协议是由操作系统实现,所以操作系统提供了不少调节 TCP 的参数。如何正确有效的使用这些参数,来提高 TCP 性能是一个不那么简单事情。我们需要针对 TCP 每个阶段的问题来对症下药,而不是病急乱投医。接下来,将以三个角度来阐述提升 TCP 的策略,分别是:TCP 三次握手的性能提升; TCP 四次挥手的性能提升; TCP 数据传输的性能提升;正文01 TCP 三
2020-11-20 17:00:24
362
转载 sql
(1)找出连续7天登陆,连续30天登陆的用户(小红书笔试,电信云面试),最大连续登陆天数的问题 --窗口函数(2)求连续点击三次的用户数,中间不能有别人的点击 ,最大连续天数的变形问题(腾讯微保面试)--窗口函数(3)计算除去部门最高工资,和最低工资的平均工资(字节跳动面试)--窗口函数(4)留存的计算,和累计求和的计算 --窗口函数,自联结(pdd面试)(5)AB球队得分流水表,得到连续三次得分的队员名字 和每次赶超对手的球员名字,(pdd面试)把这几类题型吃透,再也不怕手撕SQL和.
2020-11-20 14:18:33
352
转载 MySQL 连接出现 Authentication plugin ‘caching_sha2_password‘ cannot be loaded
很多用户在使用Navicat Premium 12连接MySQL数据库时会出现Authentication plugin 'caching_sha2_password' cannot be loaded的错误。出现这个原因是mysql8 之前的版本中加密规则是mysql_native_password,而在mysql8之后,加密规则是caching_sha2_password, 解决问题方法有两种,一种是升级navicat驱动,一种是把mysql用户登录密码加密规则还原成mysql_native_pas
2020-09-27 15:11:08
229
原创 深入理解事务与锁机制
MySQL 锁分类前文提到了锁,下面将详细讲解 MySQL 的锁,我们先来看看锁的分类,在 MySQL 中有三种级别的锁:页级锁、表级锁、行级锁。表级锁:开销小,加锁快;不会出现死锁;锁定粒度大,发生锁冲突的概率最高,并发度最低。 会发生在:MyISAM、memory、InnoDB、BDB 等存储引擎中。行级锁:开销大,加锁慢;会出现死锁;锁定粒度最小,发生锁冲突的概率最低,并发度最高。会发生在:InnoDB 存储引擎。页级锁:开销和加锁时间界于表锁和行锁之间;会出现死锁;锁定粒度界于表锁和行
2020-09-22 10:22:26
235
转载 10道有深度的mysql查询语句面试题
问题查询student表中重名的学生,结果包含id和name,按name,id升序select id,namefrom studentwhere name in (select name from student group by name having(count(*) > 1)) order by name;我们经常需要查询某一列重复的行,一般通过group by(有重复的列)然后取count>1的值。 关系型数据库有他的局限性, 有些看似简单的查询写出来的sql很复杂,而且效
2020-09-18 13:55:35
604
原创 操作系统-进程
进程状态与切换三态模型 进程的3种基本状态一个进程从创建而产生至撤销而消亡的整个生命周期至少有如下3种基本状态。(1)运行态(Running):进程占用处理器正在运行。(2)就绪态(Ready):进进程具备运行条件,(3)等待态(Wait):进程不具备运行条件,等待某一个事件的完成就绪态->运行态:cpu空闲找一个就绪态 云形态->就绪态:有更高级别的事件发生,或者运行时间片到五态模型增加两个状态:新建态,终止态新建态:新建态进程刚被创建,尚未提交参与..
2020-09-11 15:47:51
291
原创 设计模式 - 适配器模式
模式的定义与特点适配器模式(Adapter)的定义如下:将一个类的接口转换成客户希望的另外一个接口,使得原本由于接口不兼容而不能一起工作的那些类能一起工作。适配器模式分为类结构型模式和对象结构型模式两种,前者类之间的耦合度比后者高,且要求程序员了解现有组件库中的相关组件的内部结构,所以应用相对较少些。该模式的主要优点如下。客户端通过适配器可以透明地调用目标接口。 复用了现存的类,程序员不需要修改原有代码而重用现有的适配者类。 将目标类和适配者类解耦,解决了目标类和适配者类接口不一致的问题。
2020-09-11 10:27:21
160
原创 设计模式 - 代理模式
在有些情况下,一个客户不能或者不想直接访问另一个对象,这时需要找一个中介帮忙完成某项任务,这个中介就是代理对象。例如,购买火车票不一定要去火车站买,可以通过 12306 网站或者去火车票代售点买。代理模式的定义与特点代理模式给某一个对象提供一个代理对象,并由代理对象控制对原对象的引用。举个例子来说明:假如说我现在想买一辆二手车,虽然我可以自己去找车源,做质量检测等一系列的车辆过户流程,但是这确实太浪费我得时间和精力了。我只是想买一辆车而已为什么我还要额外做这么多事呢?于是我就通过中介公司来买车,
2020-09-07 14:35:38
135
原创 设计模式 -建造者模式
背景 当一个类的内部数据过于复杂的时候,要创建的话可能就需要了解这个类的内部结构,还有这些东西是怎么组织装配等一大坨乱七八糟的东西,这个时候就会增加学习成本而且会很混乱,这个时候就想啊想一种什么法子来管理一下这个类中的数据,这就是Builder模式的应用场景,Builder模式可以将一个类的构建和表示进行分离。什么是建造者模式 建造者模式,是将一个复杂的对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。创建者模式隐藏了复杂对象的创建过程,它把复杂对象的创建过...
2020-09-07 13:41:13
168
原创 秒杀 京东
直接上菜1.浏览器打开https://www.jd.com/,登录京东2.选择要抢购的商品3.按键盘F12,打开开发者模式,选择Console选项卡4.把以下代码粘贴在Console里面,修改代码里开始抢购时间(有二处时间) var nIntervId; var count = 1; var goDate; function go() { console.log("正在帮你抢购 * 刷新" + count + "次"...
2020-09-03 16:55:19
378
原创 Git专题:历史记录清理:保留代码并删除一年前的提交记录
29.1 克隆最后一个版本我们在克隆一个使用了很久的 Git 仓库时候可能会发现耗费的时间非常长,这是因为 Git 会拉取所有的历史版本导致,如果我们想让 Git 在克隆代码的时候快一些,可以在git clone命令行后面加--depth=1参数,这样 Git 在克隆代码时候只会克隆最后一个版本的内容,这里我执行命令如下所示:git clone https://gitee.com/songboy/test201907.git tempdemo --depth==1命令执行完毕之后,Git
2020-09-03 16:10:31
10979
原创 Git专题:搭建Git服务器:使用Docker快速搭建Gitlab
30.1 安装 Docker安装 Docker 的方式相对简单,直接去 Docker 官网(www.docker.com)下载安装包即可,Windows10 以下系统稍微麻烦一些不过电脑的配置建议最少 8G 内存,如果对 Docker 不太理解是什么,可以把它当做是一个简化版的虚拟机,大家可以参考一下这个网址的内容进行安装:https://www.imooc.com/article/49117安装Docker完毕之后,我们可以通过执行docker命令来验证是否安装成功,执行命令如下所...
2020-09-03 16:09:55
833
原创 Git专题:工作区暂存: stash解决提示代码未提交问题
26.1 场景复现工作区暂存使用的场景有很多,下面我们模拟一个现象来举例,平时遇到 Git 提示工作区改动未提交不能切换分支,就可以使用工作区暂存方式解决,下面带着大家来熟悉git stash命令的使用。首先我们切换到develop这个开发分支中,随意修改一些代码然后提交一个版本;然后再次修改一些代码,但不提交版本,进行切换分支,我们看看会提示什么,切换到develop分支命令如下所示:git checkout develop命令执行完毕之后,终端展示的信息如下图所示:在上图中可以看.
2020-09-03 16:09:08
1649
原创 Git专题:复制记录到当前分支: cherry-pick命令使用方法
25.1 构造环境为了让大家更好的理解,我构建一个实验环境,首先在test分支的基础上新建一个分支,名字为test09,参考命令如下所示:git checkout -b test09命令执行完毕之后,Git 返回的信息如下图所示:在上图中,可以看到新建分支成功,并且已经切换到了test09分支上来,接着随意修改一个文件,然后提交一个新版本记录,修改文件的命令如下所示:echo '123123123' > aa.txt && git status命令执行
2020-09-03 16:08:24
543
原创 Git专题:合并代码保留提交记录:rebase功能使用
24.1 merge 合并git merge命令和git rebase应用场景很类似,在这一节当中我们先使用git merge进行合并操作一次,然后大家注意观察版本记录列表中的版本记录顺序。24.1.1 在 test 分支修改代码现在首先我切换到test分支中,执行命令如下所示:git checkout test命令执行完毕之后,Git 返回信息如下图所示:在上图中,可以看到已经切换到test分支当中,现在我随意在test分支当中修改代码,然后提交一个版本,执行命令如下所示:
2020-09-03 16:07:44
3398
原创 Git专题:恢复已删除的分支:恢复误删除的分支数据
18.1 场景复现我们现在模拟一下现场,首先我会新建一个分支,然后修改一些内容,然后提交到版本控制器中,最后再将此分支删除,模拟出分支被删除的情况。首先,我们查看当前版本库控制器中有哪些分支,参考命令如下:git branch执行命令后,返回结果如下图所示:在图中可以看到当前分支处于 master 中,并且本地只存在一个 master 分支。接着我们新建一个新的分支,参考命令如下:git checkout -b retest命令执行之后,提示信息如下:在终端的截图中可
2020-09-03 16:06:39
11919
6
原创 Git专题:单独回滚代码:记录不变只回滚代码
20.1 构造实验环境我们在使用git revert命令之前,先来构建一个实验环境,用来体现此命令的价值所在,首先我们进入 Git 仓库中,然后去修改一个文件,并通过git status命令展示 Git 的文件状态,参考命令如下:echo '场景复现' >> index.php && git status命令执行完毕之后,Git 返回的文件状态信息如下图所示:在上图中可以看到文件index.php已经被修改,接下来我们将修改的内容通过git commit...
2020-09-03 16:06:00
709
原创 Git专题:服务端钩子使用:服务端接受推送时事件处理
23.1 设置钩子事件我们依然以码云平台为例,在码云平台中设置服务端钩子需要找到仓库的管理->WebHooks->增加页面,然后将我们的 URL 地址准备好就可以了。当我们使用git push命令推送代码到码云平台时候,码云接收成功就会调用我们此 URL 地址,并将事件的参数传递到设置的 URL 地址中,设置钩子方法如下图所示:在上图中,我们在 WebHook 中填写了一个外网可访问的 URL 地址,这个地址的后端使用何种语言都可以,只要能接收参数并执行代码即可,我们的钩子操作将在这
2020-09-03 16:04:55
643
原创 设计模式-单例模式
设计模式六大原则开放封闭原则:一个软件实体如类、模块和函数应该对扩展开放,对修改关闭。里氏替换原则:所有引用基类的地方必须能透明地使用其子类的对象.依赖倒置原则:高层模块不应该依赖低层模块,二者都应该依赖其抽象;抽象不应该依赖细节;细节应该依赖抽象。单一职责原则:不要存在多于一个导致类变更的原因。通俗的说,即一个类只负责一项职责。接口隔离原则:客户端不应该依赖它不需要的接口;一个类对另一个类的依赖应该建立在最小的接口上。迪米特法则:一个对象应该对其他对象保持最少的了解。 ...
2020-08-19 14:24:37
287
原创 Reids-cluster 扩容
一、创建节点(接上文)1、在H1服务器/root/soft目录下创建7002目录2、将7001目录的配置文件redis.conf拷贝到7002,并修改配置文件的端口3、进入redis-5.0.5 目录下,执行启动命令 ./src/redis-server ../7002/redis.conf4、进入H2创建7002的salve,步骤与前三个步骤一样二、添加主节点1、第一个ip:port 为需要添加的节点ip和端口,第二个ip:port为当前集群中的节点和端口;先后执行..
2020-08-14 18:34:37
101
转载 redis-cluster
一、redis-cluster设计Redis-Cluster采用无中心结构,每个节点保存数据和整个集群状态,每个节点都和其他所有节点连接。其结构特点:1、所有的redis节点彼此互联(PING-PONG机制),内部使用二进制协议优化传输速度和带宽。2、节点的fail是通过集群中超过半数的节点检测失效时才生效。3、客户端与redis节点直连,不需要中间proxy层.客户端不需要连接集群所有节点,连接集群中任何一个可用节点即可。4、redis-cluster把所有的物理节点映射到[0-16383
2020-08-14 16:02:44
191
转载 gitlab
另外可参考:https://blog.51cto.com/caiyuanji/2114796?cid=707746一、 安装并配置必要的依赖关系在CentOS系统上安装所需的依赖:ssh,防火墙,postfix(用于邮件通知) ,wget,以下这些命令也会打开系统防火墙中的HTTP和SSH端口访问。1.安装sshsudo yum install -y curl policycoreutils-pythonopenssh-server1若出现以下图片的信息则表示成功..
2020-08-06 13:47:07
176
转载 .bash_profile 的配置
修改了 .bash_profile 的配置,如果配置不对。很容出现许多内置命令都无法识别。不管输入什么命令都提示command not found,连 rm、cd、vi 这些命令都用不了了这个时候,可以用下面的方法解决export PATH=/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin然后把之前修改...
2020-05-06 18:06:31
1078
转载 HTTP header详解
HTTP Header 详解HTTP(HyperTextTransferProtocol) 即超文本传输协议,目前网页传输的的通用协议。HTTP协议采用了请求/响应模 型,浏览器或其他客户端发出请求,服务器给与响应。就整个网络资源传输而言,包括message-header和message-body两部分。首先传 递message-header,即httpheader消息。http head...
2020-03-24 16:29:33
386
转载 数据库优化
规则1:一般情况可以选择MyISAM存储引擎,如果需要事务支持必须使用InnoDB存储引擎。注意:MyISAM存储引擎 B-tree索引有一个很大的限制:参与一个索引的所有字段的长度之和不能超过1000字节。另外MyISAM数据和索引是分开,而InnoDB的数据存储是按聚簇(cluster)索引有序排列的,主键是默认的聚簇(cluster)索引,因此MyISAM虽然在一般情况下,查询性能比In...
2020-03-24 15:55:48
145
转载 macbook pro能搜索到wifi,但是连接不上
问题描述:wifi本身没有问题,电脑(如:macbook pro)搜索得到但是连接不上可能原因之一: 想起来我之前手动改过电脑的IPV4 Address,导致我修改的那个ip和路由器的ip不在同一个网段上,因此连不上解决方法:【以iphone为例】1.先用手机连上wifi。2.进入到设置-->无线局域网-->点击你已连接的wifi的感叹号-->点击...
2020-02-03 10:16:13
4182
转载 正则表达式^(?=.*\\d)(?=.*[a-z])(?=.*[A-Z]).{8,10}$
正则表达式,一个十分古老而又强大的文本处理工具,仅仅用一段非常简短的表达式语句,便能够快速实现一个非常复杂的业务逻辑。熟练地掌握正则表达式的话,能够使你的开发效率得到极大的提升。正则表达式经常被用于字段或任意字符串的校验,如下面这段校验基本日期格式的JavaScript代码:在前端开发中经常使用到的20个正则表达式。1 . 校验密码强度密码的强度必须是包含大小写字母和数字...
2019-12-31 15:27:49
9887
原创 PHP总结
3年PHPer的面试总结基础部分1.HTTP中GET与POST的区别,注意最后一条GET在浏览器回退时是无害的,而POST会再次提交请求。GET产生的URL地址可以被Bookmark,而POST不可以。GET请求会被浏览器主动cache,而POST不会,除非手动设置。GET请求只能进行url编码,而POST支持多种编码方式。GET请求参数会被完整保留在浏览器历史记录里,而POS...
2019-12-05 12:20:34
426
原创 PHP7.4新特性
1. 属性添加限定类型<?phpclass User {public int $age;public string $name}$user = new User();$user->age = 10;$user->name = "张三";//error$user->age = "zhang";//需要传递int2. 箭头函数<?php...
2019-12-05 12:17:01
394
转载 sentry入门
Sentry 是一个开源的实时错误追踪系统,可以帮助开发者实时监控并修复异常问题。它主要专注于持续集成、提高效率并且提升用户体验。Sentry 分为服务端和客户端 SDK,前者可以直接使用它家提供的在线服务,也可以本地自行搭建;后者提供了对多种主流语言和框架的支持,包括 React、Angular、Node、Django、RoR、PHP、Laravel、Android、.NET、JAVA 等。同时...
2019-11-26 18:06:46
2262
转载 jenkins
一. 背景之前我们的开发流程为在本地进行webpack打包编译,然后svn提交源代码和编译后的代码。同时每次提交前也会从svn更新源代码和编译后的代码。这样做有几个缺点:1. svn 更新和提交编译后的代码造成大量冲突文件2. 由于我们使用非覆盖式发布的命名方式,在经过小组多人多次优化提交测试之后,在整理需要发布的文件列表时,很容易遗漏一些文件3. 在涉及到多人开发同一功能时容易产...
2019-11-26 16:22:44
569
原创 自动化部署之jenkins发布PHP项目
使用git+jenkins实现持续集成构建一个自由风格的php-deployGernal配置,丢弃旧的构建,防止jenkins构建较多之后变臃肿源码管理:这里使用git插件,也可以使用svn插件将git路径存在这里还需要权限认证,否则会出现error 。jenkins服务器上生成SSH-Key然后保存,立即构建一次,会拉取master的代码库点开可...
2019-11-26 10:52:51
1852
原创 守护进程管理工具supervisor
介绍 项目中总是会遇到需要以守护进程形式运行的脚本,比如队列,之前都是自己写php的脚本来监控运行,最近发现了一个守护进程管理工具supervisor。 supervisor的官网对自己是这样介绍的,Supervisor是一个客户端/服务器系统,允许其用户在类UNIX操作系统上控制多个进程安装easy_install supervisor生成配置文件echo_super...
2019-11-15 11:38:47
356
转载 Yii2.0 queue队列
虽然接触过几门语言,但是在大佬们谈论队列的时候还总是像是一座大山,经过一段时间的整理,以下我来谈谈我对队列的看法(路过大神扶正请温柔)。== 关于队列 ==1.队列就像是一个容器,把来不及操作的东西井然有序的放入。2.通俗的讲,可以把队列看做一个城市的马路。有很多马路,各有各的秩序和走向,先驶入的先走出马路,马路与马路车辆不会相互影响。队列里的内容是有一定规格的,就想机动车...
2019-11-15 11:28:10
1449
原创 php 导入excel
public function actionImportExcelToMysql(){ $filename = './1.xlsx'; $objPHPExcelReader = PHPExcel_IOFactory::load($filename); $reader = $objPHPExcelReader->getWorksh...
2019-10-28 20:07:16
386
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人