二分法使用场景:前提是排好序的数组,看到排好序的应该有使用二分法的想法。使用的时候,要知道二分法的作用是可以更快速的找出符合条件的值。时间复杂度为$On^2$,而全局遍历会使用$On$的时间
二分法使用方法:三个变量决定一切。x,y,mid 分别表示数组的左边界、右边界、中间值。使用中间值,来计算下一次遍历的数组是左子数组还是右子数组。
more >> Kubernetes网络模型设计的一个基础原则是:单Pod单IP模型。该模型的目标是为了每个Pod分配一个Kubernetes集群私有网络地址段的IP地址。通过该IP,Pod能够跨网络与其他Pod,物理机,容器等进行通信。一个Pod内部的所有容器共享一个网络堆栈(相当于一个网络命名空间,它们的IP地址、网络设备、配置等都是共享的),彼此之间通过localhost通信,就像在一个机器上一样。所以可以将Pod简单看成一个独立的虚拟机。
more >>本文介绍GC的源码分析(源码基于v1.14)
GC会扫描哪些地方存有指针,首先变量要么分配到栈中,要么分配在在堆中。我们在之前的Go语言内存管理章节中学习到了堆对应的bitmap每2bit会指出arena哪些地址存储了对象,对象是否包含指针;还有我们的mcentral中,也会分为包含指针的span(noscan),不包含指针的span,这样的分类会减少标记的时间,提升标记的效率。对于栈来说,栈空间的指针信息都存储在函数中,使用1 bit表示一个指针大小的内存 (位于stackmap.bytedata)
Go的GC是并行GC, 也就是GC的大部分处理和普通的go代码是同时运行的, 这让GO的GC流程比较复杂。
more >>可以看到每个容器里面
merged存放的是容器的可读可写文件,diff存放的是容器可读文件。可以看到diff文件是merged的子文件
可以看到docker初始内存占用:overlay2占用24G
more >>前几章我们学习了Golang内存管理的基本原理。现在我们来看GC的基本原理是什么?
GC(Garbage Collection)提供自动内存管理机制,自动释放回收不使用的内存对象,防止内存泄漏
GC的算法随着go语言版本的更新而不断变化
more >>goV1.3之前标记-清除(mark and sweep)算法
goV1.5三色标记法
goV1.8三色标记法+混合写屏障法
从一个案例学习k8s 基本架构
前提:你已经对docker、容器、数据存储有了基本的认识,若还没有,请看我相关文章
在服务器我已经使用kubadm搭建的k8s集群(若想深入学习,一定先搭建一套k8s集群哦),一主(master)一从(slave)。系统创建的Pod都在namespace为kube-system中,我们可以看到k8s集群的都有以下的主要组件:
more >>
缺失模块。
1、请确保node版本大于6.2
2、在博客根目录(注意不是yilia根目录)执行以下命令:
npm i hexo-generator-json-content --save
3、在根目录_config.yml里添加配置:
jsonContent: meta: false pages: false posts: title: true date: true path: true text: false raw: false content: false slug: false updated: false comments: false link: false permalink: false excerpt: false categories: false tags: true