- 博客(10)
- 资源 (1)
- 收藏
- 关注
原创 按照层次遍历顺序构造二叉树
构造二叉树时,默认二叉树是一颗满二叉树,数组的顺序则是满二叉树的层次遍历结果,其中’#‘代表空节点,以此来构造一颗二叉树。package mainimport "fmt"type BinaryTreeNode struct { val rune LeftNode *BinaryTreeNode RightNode *BinaryTreeNode}type BinaryTree struct { Root *BinaryTreeNode}// 按.
2022-04-29 18:12:31
2743
翻译 TCMalloc : Thread-Caching Malloc(中文翻译)
TCMalloc : Thread-Caching Malloc(线程缓存Malloc)Sanjay Ghemawat, Paul Menage <opensource@google.com>Motivation(前言)TCMalloc is faster than the glibc 2.3 malloc (available as a separate library called ptmalloc2) and other mallocs that I have tested.
2020-08-13 19:48:35
542
原创 限流器实现原理
在开发高并发系统时,有三把利器用来保护系统:缓存、降级和限流。缓存这个概念是大家共识的,没有什么异议,但在好些文章中我看有人会把降级和限流两个概念混淆在一起,我认为这样理解是不对的,贴下我认为正确的解释:服务降级:服务降级是在服务器压力陡增的情况下,利用有限资源,根据当前业务情况,关闭某些服务接口或者页面,以此释放服务器资源以保证核心任务的正常运行。服务限流:流量控制本质上是减小访...
2019-05-12 15:31:21
3888
原创 php垃圾回收机制
最近在看PHP垃圾回收机制,顺便热蒸现卖,做下总结:基础概念:写时拷贝 引用计数 回收周期php的每个变量都会存储在一个叫做zval的变量容器中,这个容器的定义如下:typedef struct _zval_struct zval;//zval定义struct _zval_struct { zvalue_value value; /* value*/ zend_uint refcount_...
2018-05-24 22:08:59
922
原创 git常用命令总结
拉取指定远程分支代码创建并切换到本地分支: git checkout -b dev origin/master 推送当前分支代码到远程并创建该远程分支: git push origin dev 设置本地分支和远程分支的关联: git branch --set-upstream-to origin/dev 删除本地...
2018-05-21 19:10:10
253
原创 php判断一个字符串是否符合时间格式
$preg = '/^([12]\d\d\d)-(0?[1-9]|1[0-2])-(0?[1-9]|[12]\d|3[0-1]) ([0-1]\d|2[0-4]):([0-5]\d)(:[0-5]\d)?$/';preg_match($preg, '2018-1-2 24:00:50')年:([12]\d\d\d) 表示第一位只能是1或者2,后三位数字即可;范围1000-2999;月:(0?[1-...
2018-05-16 16:54:41
8511
原创 php实现双端队列
主要是为了复习一下常见的数组函数,写一个简单的双端队列:class DoubleQueue{ private $queue = array(); public function lpush($data) { array_unshift($this->queue, $data);//array_unshift向数组头部插入一个或多...
2018-05-10 20:38:00
365
原创 排序算法的php实现
插入排序原理:给定一个无序数组a,假设元素a[0]-a[i-1]有序,则从a[i]开始和数组a[0]-a[i-1]之间的元素进行比较,将a[i]插入到合适的位置,从而保证a[0]-a[i]有序,以此类推,将整个数组排序。插入排序算法的最大时间复杂度是O(n^2),插入排序适合基本有序的数组结构,它的最小的时间复杂度接近O(n),那么为了尽量减少插入排序的时间复杂度,因此引入了希尔排序,希尔排序是插...
2018-04-15 22:04:59
264
原创 rabbitmq和redis用作消息队列的区别
将redis发布订阅模式用做消息队列和rabbitmq的区别:可靠性 redis :没有相应的机制保证消息的可靠消费,如果发布者发布一条消息,而没有对应的订阅者的话,这条消息将丢失,不会存在内存中; rabbitmq:具有消息消费确认机制,如果发布一条消息,还没有消费者消费该队列,那么这条消息将一直存放在队列中,直到有消费者消费了该条消息,以此可以保证消息的可靠消费,那么rabbitmq...
2018-01-16 18:55:40
27949
4
转载 ES基础概念
1.概述Elasticsearch是面向文档(document oriented)的,这意味着它可以存储整个对象或文档(document)。然而它不仅仅是存储,还会索引(index)每个文档的内容使之可以被搜索。在Elasticsearch中,你可以对文档进行索引、搜索、排序、过滤。ES比传统关系型数据库,就像如下:Relation DB -> DataBase-> Tables-> R
2017-08-14 15:47:26
3815
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人