自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

leekerian的博客

在龟速前进的猿类

  • 博客(382)
  • 收藏
  • 关注

原创 IM系统优秀文章

https://xie.infoq.cn/article/19e95a78e2f5389588debfb1c 《如何设计一个亿级消息量的 IM 系统》

2024-04-07 10:09:33 448

原创 CAP学习

什么是cap为什么需要分布式共识算法网络分区脑裂问题拜占庭与非拜占庭惊群效应分布式定时任务所遇到的问题base理论

2024-03-18 20:55:39 151

原创 IM文章学习记录

20240312http://www.52im.net/thread-3780-1-1.html 《探探的IM长连接技术实践:技术选型、架构设计、性能优化》

2024-03-12 09:43:19 462

原创 GO 工程化实践

go 工程化实践

2022-11-07 21:56:35 448

原创 mysql 锁 note

mysql 锁的学习

2022-10-08 22:35:45 306

原创 微服务 高可用

微服务

2022-09-25 18:36:21 575

原创 context源码学习

context源码学习

2022-09-12 22:22:16 822

原创 sync.map 源码学习

sync.map学习

2022-09-04 22:34:48 430

原创 sync.pool 源码学习

sync.pool 源码学习笔记

2022-08-28 00:25:50 259

原创 sync.atomic

sync.atomic 源码学习

2022-08-25 22:26:00 186

原创 Bazel note

Bazel的学习摘自知乎https://zhuanlan.zhihu.com/p/262497747java_binary( name = "MyBinary", srcs = ["MyBinary.java"], deps = [":mylib", ],)java_library( name = "mylib", srcs = ["MyLibrary.java", "MyHelper.java"], visibility = ["//java/com/example/myproduc

2021-12-16 00:11:23 322

原创 git note

GitGit的学习以及笔记git config --global --list 查看用户配置信息git本地有三个工作区域:workspace:工作区,就是你平时存放项目代码的地方index/stage:暂存区,用于临时存放你的改动,事实上它只是一个文件,保存即将提交到文件列表信息reposity:本地仓库,就是安全存放数据的位置remote:远程仓库,托管代码的服务器,可以简单的认为是你项目组中的一台电脑用于远程数据交换git的工作流程在工作目录中添加,修改文件将需要进行版本管理

2021-12-16 00:11:07 158

原创 golang note

https://draveness.me/golang/docs/part1-prerequisite/ch02-compile/golang-compile-intro/ 学习笔记go的编译过程对输入的文件先进行词法分析形成token,然后再对token进行语法分析形成抽象语法树,得到抽象语法树后分九个阶段对抽象语法树进行更新和编译:检查常量、类型和函数的类型;处理变量的赋值;对函数的主体进行类型检查;决定如何捕获变量;检查内联函数的类型;进行逃逸分析;将闭包的主体转换成引.

2021-12-05 16:41:21 449

原创 Redis 笔记

RedisRedis数据结构为什么单线程还这么快第一,纯内存访问,Redis将所有数据放在内存中,内存的响应时长大约为100纳秒,这是Redis达到每秒万级别访问的重要基础。第二,非阻塞I/O,Redis使用epoll作为I/O多路复用技术的实现,再加上Redis自身的事件处理模型将epoll中的连接、读写、关闭都转换为事件,不在网络I/O上浪费过多的时间,如图26所示。...

2021-07-31 21:13:12 444

原创 机器学习 note

机器学习李宏毅老师的ML课程的笔记学习什么是机器学习机器学习就是让机器去寻找一个函数(Function),这个函数具备这样的能力,对于相对应地输入可以获得我们想要的输出,例如Speech Recognition语音辨识,我们把我们说的话作为输入,我们希望机器能找到一个Function,该Function可以输出这个说的话的文字内容。又比如Image Recognition图片辨识,我们希望机器能找到一个Function,对于输入的一张图片(比如猫),可以输出该图片是什么(猫)。机器学

2021-05-10 10:47:20 226 2

原创 shell学习

shell 学习#!/bin/bash 头文件sh/bash helloworld.sh 执行该sh文件chmod 777 helloworld.sh 修改该sh文件的权限,设置完了之后可以用./helloworld.sh 命令直接执行该sh文件echo "hello" >> text.txt 将“hello”追加到txt文件中系统变量echo $HOME 获取当前用户的home目录echo $PWD 获取当前目录echo $SHELL 获取默认的解析器是哪一个echo

2021-04-18 20:42:43 88

原创 Docker学习

docker 命令学习对于docker的学习以及一些命令的记录image 镜像常用image也就是镜像,可以理解为一个个安装包docker images 查看所有的镜像docker pull mysql 拉取镜像docker search mysql 搜索镜像docker rmi 镜像名:tag | 镜像id 后面加tag或者镜像id来删除镜像docker rmi -f 镜像名:tag | 镜像id 强制删除以及创建容器的镜像,会将容器和镜像一并删除docker images -

2021-04-14 21:05:12 142

原创 GO grpc

protoc ./person.proto --go_out=./将当前目录下的person.roto转译成go语言放在当前目录注意在person.proto中写上option go_package="./;firstpb";左边表示转译之后存放的位置,右边表示go语言的包名

2021-04-13 20:18:24 902 1

原创 Go 单元测试

新建Splitpackage splitimport "strings"//传入Split("a:b:c",":")返回("a","b","c")func Split(s,sep string) (result []string){ i := strings.Index(s,sep) for i > -1 { result = append(result,s[:i]) s = s[i+1:] i = strings.Index(s,sep) } result =

2021-04-10 21:17:25 210

原创 leetcode 14. 最长公共前缀 go实现

100%这题属于一类的二分查找问题,类似于最小值最大化,对于查找的区间,我们可以通过二分查找算法收敛于最优解复杂度O(n2logn)func longestCommonPrefix(strs []string) string { temp := 0x3f3f3f3f if len(strs) == 0 { return "" } for _,j := range strs { lens := len(j) if

2021-03-21 01:09:26 174

原创 go并发实现素数筛

先贴代码package mainimport ( "fmt")// Send the sequence 2, 3, 4, ... to channel 'ch'.func generate(ch chan int) { for i := 2; ; i++ { ch <- i // Send 'i' to channel 'ch'. }}// Copy the values from channel 'in' to channel 'out',// removing

2021-03-15 14:48:32 791 7

原创 图解HTTP笔记

客户端发送的请求报文 起始行开头的GET表示请求访问服务器的类型,称为方法(method)。随后的字符串/index.htm指明了请求访问的资源对象,也叫做请求URI(request-URI)。最后的HTTP/1.1,即HTTP的版本号,用来提示客户端使用的HTTP协议功能。请求报文是由请求方法、请求URI、协议版本、可选的请求首部字段和内容实体构成的。 GET:获取资源 GET方法用来请求访问已被URI识别的资源。指定的资源经服务器解析后返回响应内容。 POST:传输实..

2021-02-19 18:49:58 145

原创 mysql必知必会

SELECT prod_name FROM products LIMIT 5,5;(从行5开始选择5条数据,行是从0开始的) ORDER BY SELECT prod_name FROM product ORDER BY prod_name/ DESC;(将按照prod_name排序检索)/加DESC表示降序 SELECT prod_id,prod_price,prod_name FORM products ORDER BY prod_price,prod_name(先按照pri...

2021-02-12 21:08:13 1727 5

原创 阅读记录——record

《深入理解计算机系统》——2021/2/5毕

2021-02-05 11:50:12 160

原创 重新认识fork

重新认识fork 当fork函数被当前进程调用时,内核为新进程创建各种数据结构,并分配给它一个唯一的PID。为了给这个进程创建虚拟内存,它创建了当前进程的mm_struct,区域结构和页表的原样副本。它将两个进程中的每个页都标记为只读,并将两个进程中的每个区域结构都标记为私有的写时复制。当fork在新进程返回时,新进程现在的虚拟内存刚好和调用fork时存在的虚拟内存相同。当这两个进程中的任一个进程进行写操作时,写时复制机制就会创建新的页面。(如图所示,当进程1调用fork创建进程2时候,他们的虚..

2021-02-04 22:05:06 231

原创 直接映射高速缓存中的冲突不命中

冲突不命中在真实的程序中很常见。当程序访问大小为2的幂的数组时,直接映射高速缓存会通常发生冲突不命中。float dotpord(float x[8],float y[8])//x与y向量的内积{ float sum = 0.0; int i; for(i = 0;i < 8;i++) sum+=x[i]*y[i]; return sum;}假设浮点数是4个字节,x被加载到从地址0开始的32字节的内存中,而y紧跟x之后,从地址32开始。这会

2021-01-22 18:49:03 2508 3

原创 第4章 流水线

流水线通过在组合逻辑后加入流水线寄存器实现流水线,有了流水线能在一个时钟周期中发射一条指令并完成一条指令流水线的断流叫做流水线冒险主要有1)数据冒险2)控制冒险数据冒险数据冒险是指下一条流水线用到上一条指令写入的数据,也就是写后读。处理方法用暂停来避免数据冒险 用转发来避免数据冒险:不写入寄存器,直接将结果作为下一条指令的输入控制冒险例如ret返回指令和call跳转指令会是流水线产生控制冒险处理方法暂停避免在第3个周期执行ret的时候我们在DEM三个阶段插入

2021-01-17 23:40:54 460

原创 内存越界引用和缓存区溢出

内存越界引用和缓存区溢出void echo(){ char buf[8]; gets(buf); puts(buf);}栈区如上图所示,echo会在栈顶区域分配8字节大小给buf,当输入的字节数量0-7时,不会对栈造成破坏,当输入9-23字节时,由于是空区域,所以也不会造成破坏,但是当输入>24字节时,会修改返回地址数据,对整个栈区造成破坏。对抗缓冲区溢出攻击 栈随机化 程序每次运行,就栈的地址都采用随机化处理。 栈破坏检测(金丝雀)

2021-01-12 18:49:07 437

原创 第三章 过程

过程 过程的调用底层实现上是用栈结构,当过程p调用过程q时,我们先将p入栈,再将q入栈,q执行结束之后将q出栈,然后在将p出栈。调用不同的过程,实质上修改的是程序计数器(PC,从高地址向低地址增长)的值,从底层汇编上看,采用的是call命令。 转移控制 当过程p调用过程q,q执行结束之后如何继续执行p之后的机器指令,我们称之为转移控制。实现原理是在p执行call汇编调用q时候,我们首先将call指令的下一条指令入栈,也就是图中的返回地...

2021-01-11 21:45:47 247

原创 leetcode 148. 排序链表

/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: ListNode*...

2020-02-24 22:20:25 156

原创 leetcode 172. 阶乘后的零

/*对于一个数的阶乘,就如之前分析的,5 的因子一定是每隔 5 个数出现一次,也就是下边的样子。n! = 1 * 2 * 3 * 4 * (1 * 5) * ... * (2 * 5) * ... * (3 * 5) *... * n因为每隔 5 个数出现一个 5,所以计算出现了多少个 5,我们只需要用 n/5 就可以算出来。但还没有结束,继续分析。... * (1 * 5) * ...

2020-02-24 21:50:12 148

原创 leetcode 887. 鸡蛋掉落

O(knlogn)class Solution {public: int mp[110][11111]; int dp(int k,int n) { if(k==1) return n; if(n==0) return 0; //if(mp[make_pair(k,n)]) return mp[make_pair(k,n...

2020-02-24 21:45:53 469

原创 面试题51. 数组中的逆序对

class Solution {public: int lowbit(int x) {return x&(-x);} void update(int i,vector<int>& c) {//单点更新,更新这个点还要更新他的父亲所以是i+=lowbit(i) while(i <= c.size()) ...

2020-02-22 18:08:50 204

原创 leetcode 279. 完全平方数

class Solution {public: int numSquares(int n) { vector<int> dp(n+10); dp[1]=1; dp[2]=2; for(int i=3;i<=n;i++) { dp[i]=100000000; ...

2020-02-21 18:22:16 143

原创 leetcode 264. 丑数 II

/* 用三个指针分别对应2,3,5的乘机倍数*/class Solution {public: int nthUglyNumber(int n) { int dp[2222]; int i1=1; int i2=1; int i3=1; dp[1]=1; for(int i=...

2020-02-21 17:54:32 167

原创 leetcode 240. 搜索二维矩阵 II

class Solution {public: bool searchMatrix(vector<vector<int>>& matrix, int target) { int n=matrix.size()-1; int m=0; while(n>=0 && m<matri...

2020-02-21 17:45:10 136

原创 leetcode 227. 基本计算器 II

class Solution {public: typedef long long ll; int calculate(string s) { s += "+";//在末尾加一个+号运算符 if (s.empty()) return 0; stack<int> vals; stack<char...

2020-02-21 16:46:46 155

原创 leetcode 222. 完全二叉树的节点个数

/* 最底层的中间位置为根节点右儿子一直往左边遍历的点 我们每次判断这个点是否为空如果为空那就在左边否则在右边 */class Solution {public: int countNodes(TreeNode* root) { if(!root) return 0; int depth = f(root); ...

2020-02-21 16:29:39 162

原创 leetcode 221. 最大正方形

dp[i][j]表示这个点的最大正方形边长public class Solution { public int maximalSquare(char[][] matrix) { int rows = matrix.length, cols = rows > 0 ? matrix[0].length : 0; int[][] dp = new i...

2020-02-21 03:18:45 189

原创 leetcode 220. 存在重复元素 III

/* 用set.size()来控制整个窗口的大小如果在set中存在nums[j]这说明 i,j之间的绝对值差小于k 然后用lower_bound查询nums[i]-t,nums[i]+t的值是否存在*/class Solution {public: bool containsNearbyAlmostDuplicate(vector<int>&...

2020-02-21 02:03:22 137

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除