加载中
C++宏定义详解

一、#define的基本用法 #define是C语言中提供的宏定义命令,其主要目的是为程序员在编程时提供一定的方便,并能在一定程度上提高程序的运行效率,但学生在学习时往往不能 理解该命令的本质,...

amp
05/07 11:52
3
一文搞懂Raft算法

正文   raft是工程上使用较为广泛的强一致性、去中心化、高可用的分布式协议。在这里强调了是在工程上,因为在学术理论界,最耀眼的还是大名鼎鼎的Paxos。但Paxos是:少数真正理解的人觉得...

05/01 22:53
28
Linux中的各种锁

在linux内核中,有很多同步机制。比较经典的有原子操作、spin_lock(忙等待的锁)、mutex(互斥锁)、semaphore(信号量)等。并且它们几乎都有对应的rw_XXX(读写锁),以便在能够区分读与写...

04/26 23:12
255
函数sync、fsync与fdatasync的总结整理(必看篇)

一、术语解释 脏页:linux内核中的概念,因为硬盘的读写速度远赶不上内存的速度,系统就把读写比较频繁的数据事先放到内存中,以提高读写速度,这就叫高速缓存,linux是以页作为高速缓存的单位...

VM虚拟机扩展硬盘容量

VM虚拟机扩展硬盘容量 第一步,关闭系统,给虚拟机硬盘增加空间。 第二步,启动系统。查看硬盘大小和分区情况。 第三步,分区。 第四步,格式化分区。 第五步,挂载。 第六步,开机自动挂载。...

【技术篇】僵尸进程的产生和处理方法

(一)概念知识 我们都知道,在linux\unix中,正常情况下子进程是通过父进程创建的,子进程的而结束和父进程的运行是一个异步运行过程(父进程永远无法预测子进程什么时候结束)。当一个进程...

03/15 13:38
17
CentOS7下安装mysql5.7

一、安装YUM Repo 1、由于CentOS 的yum源中没有mysql,需要到mysql的官网下载yum repo配置文件。 下载命令: wget https://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm ...

03/10 15:10
30
不同版本的编译器对c++11的支持

这篇文章主要是我在编译程序的时候发现程序编译不通过,后来经过排查发现是不同的编译器版本对c++11支持不同(或者说对c++11支持的不完善)。 不用看程序代码,只看错误就能发现问题。错误如...

centos 设置coredump

mkdir -p /root/coredump #设置存放core文件的路径 echo "ulimit -c unlimited" >>/etc/profile ...

02/14 18:42
510
【MySQL】悲观锁&乐观锁

悲观锁与乐观锁是两种常见的资源并发锁设计思路,也是并发编程中一个非常基础的概念。本文将对这两种常见的锁机制在数据库数据上的实现进行比较系统的介绍。 悲观锁(Pessimistic Lock) 悲观...

01/07 15:34
39
vmalloc与mmap

vmalloc与mmap    mmap()系统调用是在用户进程与内核之间共享内存区域的常用方法。我们最近有个程序,需要应用进程能够读取内核驱动获取的数据,经过简单的调研,决定采用mmap方式。实现起...

01/07 11:12
172
布隆过滤器(Bloom Filter)的原理和实现

什么情况下需要布隆过滤器? 先来看几个比较常见的例子 字处理软件中,需要检查一个英语单词是否拼写正确 在 FBI,一个嫌疑人的名字是否已经在嫌疑名单上 在网络爬虫里,一个网址是否被访问过...

mlock家族:锁定物理内存

锁住内存是为了防止这段内存被操作系统swap掉。并且由于此操作风险高,仅超级用户可以执行。 看家族成员: #include <sys/mman.h> int mlock(const void *addr, size_t len); ......

2019/12/31 11:38
32
Linux虚拟内存管理(glibc)

在使用mysql作为DB开发的兑换券系统中,随着分区表的不断创建,发现mysqld出现了疑似“内存泄露”现象,但通过 valgrind 等工具检测后,并没发现类似的问题(最终原因是由于glibc的内存碎片造...

2019/12/31 11:04
22
一致性Hash算法背景

一致性哈希算法在1997年由麻省理工学院的Karger等人在解决分布式Cache中提出的,设计目标是为了解决因特网中的热点(Hot spot)问题,初衷和CARP十分类似。一致性哈希修正了CARP使用的简单哈希...

深入Golang调度器之GMP模型

前言 随着服务器硬件迭代升级,配置也越来越高。为充分利用服务器资源,并发编程也变的越来越重要。在开始之前,需要了解一下并发(concurrency)和并行(parallesim)的区别。 并发: 逻辑上具有...

2019/12/29 18:57
97
Linux进程的五个段(数据段、代码段、bss、堆栈段)

下面我们来简单归纳一下进程对应的内存空间中所包含的5种不同的数据区都是干什么的。 BSS段:BSS段(bss segment)通常是指用来存放程序中未初始化的全局变量的一块内存区域。BSS是英文Block...

2019/12/18 18:50
121
bashrc与profile的区别

bashrc与profile都用于保存用户的环境信息,bashrc用于交互式non-loginshell,而profile用于交互式login shell。 /etc/profile,/etc/bashrc 是系统全局环境变量设定 ~/.profile,~/.bashrc...

2019/12/06 10:41
84
寻找并删除Git记录中的大文件

最近发现HarttleLand的Git仓库已经达到了142M,严重影响Fork和Clone。 今晨Harttle从Git记录中定位了数百个大文件并将其删除,现在仓库恢复了27M的大小。 借此机会,本文来介绍查找和重写Git...

Git
2019/11/28 10:22
51
微信自研生产级paxos类库PhxPaxos实现原理介绍

前言 本文是一篇无需任何分布式以及paxos算法基础的人可以看懂的。 标题主要有三个关键字,生产级,paxos,实现,涵盖了本文的重点。什么叫生产级,直译就是能用于生产线的,而非实验产品。生...

2019/11/27 20:20
13

没有更多内容

加载失败,请刷新页面

返回顶部
顶部