加载中
关于我

我 我?就是一个程序猿。 以前 可能是我小时候太淘(变形计里面的主角不一定比我小时候还菜),好不容易我爸妈没放弃我,通过特殊高考渠道我又重回学校上了一个一般的二本(16年才毕业),所以,...

2017/09/09 15:29
1.3K
linux内核ksoftirqd线程分析

系统现象 我们执行ps会发现一个叫ksoftirqd的线程 ps -ef | grep ksoftirqd root 6 2 0 8月19 ? 00:01:15 [ksoftirqd/0] root 14 2 0 8月19 ? 00:01:13 [ksoftirqd/1] roo......

10/13 16:47
466
golang从内核到epoll

引子:在之前的文章里 golang netpoll的实现与分析 讲了一些,对于golang netpoll的实现,但是,数据是怎么通过硬件到达golang的这块不是太明确,今天就主要分析下这一块。 linux的网络的基本...

10/11 17:56
1.8W
记一些go slice的坑

坑1,赋值 s1 = []int{1,2,3,4,5} s2 := s1 s2 = append(s2, 1) //s1[5]是什么? 由于切片是引用类型,首地址都一样,因此对当切片没有被扩容的时候,会影响之前的对象。如果扩容了,就不会影...

go
09/22 18:33
119
golang netpoll封装详解

io模型 计算机的io模型区分为多种,目前用的最多的也就是nio、epoll、select。 结合不同场景使用不同的io模型才是正解。 具体可以查看我之前写的io模型演进。io模型演进 golang中网络io gola...

09/22 15:46
4.3K
golang json 性能分析

在看代码的过程中,发现很多代码并没有使用golang自带的json,而是使用json-iterator去做的json的编解码,好奇之下,便去研究了一下。 json Json 作为一种重要的数据格式,具有良好的可读性以...

06/11 17:56
161
MySQL的锁机制 - 记录锁、间隙锁、临键锁 - 咖啡屋小罗的文章 - 知乎 https://zhuanlan.zhihu.com/p/48269420

记录锁(Record Locks) 记录锁是 封锁记录,记录锁也叫行锁,例如: SELECT * FROM test WHERE id=1 FOR UPDATE; 它会在 id=1 的记录上加上记录锁,以阻止其他事务插入,更新,删除 id=1 这一...

04/27 15:25
89
现在面试都这么直接的嘛?(golang map)

现在面试都这么直接的嘛? 面试难如狗,肝不过年轻人怎么办,只能多总结。 闲聊 MAP结构 Map的实现主要有两种方式:哈希表(hash table)和搜索树(search tree)。例如Java中的hashMap是基于...

04/20 19:08
377
现在面试都这么直接的嘛?(golang 切片)

现在面试都这么直接的嘛? 面试难如狗,肝不过年轻人怎么办,只能多总结。 slice 那么切片,就是今天的主角了。 直接搜哈。 问题1,slice的底层数据结构 我擦,这么直接的嘛? 我猜是数组加链...

04/20 17:50
168
协程究竟比线程能省多少开销?

Linux进程和线程的上下文切换开销,大约是3-5us之间。这个开销确实不算大,但是海量互联网服务端和一般的计算机程序相比,特点是: 高并发:每秒钟需要处理成千上万的用户请求 周期短:每个用...

04/20 10:02
1.7K
微服务架构的演进过程

什么是微服务架构 微服务架构(Microservice Architecture)是一种架构概念,旨在通过将功能分解到各个离散的服务中以实现对解决方案的解耦。你可以将其看作是在架构层次而非获取服务的 类上...

mysql千万级大表的优化

千万级大表,这是一个很有技术含量的问题。一般碰到这种问题,我们下意识的会想对表进行拆分或者分区,但是其实,要从多个维度去考虑这个事情。 问题分解 我们首先找到关键字: 千万级 大表 ...

04/15 11:40
240
b+tree演进

innodb 大家都知道,mysql索引由存储引擎层实现,常见的是innodb。 索引最主要得作用是提升访问效率(类似于书籍目录,比如新华字典,有字母索引,也有笔画索引),索引的定义: 索引是对数据...

TCP和并发相关知识梳理

什么叫TCP 面向连接的,可靠的传输协议 三次握手 小知识: ddos攻击,一般是通过最后一次握手不给予回馈,让S端大量阻塞在等待C端的最后一步ACK的过程中 最大连接数 满足四元组方程。 C10k问...

04/02 10:59
65
io模型的演进

学习三大要素 what、why、how,每天给自己强调一遍 什么是IO 程序是由数据+指令构成的,运行程序的过程可以分成下面这几步: 将代码加载到内存中,逐条运行内存中的代码 在运行代码的过程中,...

04/02 10:43
409
dfs遍历二叉树

dfs 从顶点v出发深度遍历的算法 访问v 依次从顶点v未被访问的邻接点出发深度遍历。 dfs算法最大特色就在于其递归特性,使得算法代码简洁。但也由于递归使得算法难以理解,原因在于递归使得初...

03/24 09:57
59
数据结构-栈

栈 栈(stack)又名堆栈,它是一种运算受限的线性表。限定仅在表尾进行插入和删除操作的线性表。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它...

03/11 18:37
52
贪心算法

引子 钱币找零问题 假设1元、5元、10元、20元、50元、100元的纸币分别有a,b,c,d,e,f张,现在要支付k元,至少要用多少张纸币? 贪心算法 贪心标准选择: 应用当前“最好”的标准作为统一标准,...

03/11 14:30
94
动态规划2

跳跃问题 给定一个非负整数数组 nums ,你最初位于数组的 第一个下标 。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个下标。 示例 1: 输入:nums = [2,3...

03/09 16:35
45
动态规划

动态规划(Dynamic Programming,DP)是运筹学的一个分支,是求解决策过程最优化的过程。20世纪50年代初,美国数学家贝尔曼(R.Bellman)等人在研究多阶段决策过程的优化问题时,提出了著名的...

03/08 23:23
109

没有更多内容

加载失败,请刷新页面

返回顶部
顶部