自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(17)
  • 收藏
  • 关注

原创 c++引用容易犯的错误---引用失效(类似迭代器失效)

记录一下自己笔试时踩的关于引用的坑平常比较多使用引用,认为能够减少重新构建局部变量的开销,特别是局部变量是一个比较大的对象或者数据结构时。但在下面场景下,引用就会出现错误。priority_queue<vector<int>, vector<vector<int>>> q;while (true) { auto& n = q.top();//加了引用 q.pop(); dosth(n);//这里的n已经发生变化}while

2021-09-13 21:06:57 1306

原创 c++后台开发面经整理

系统内存分配的流程虚拟地址和物理地址转换实模式和保护模式执行可执行文件时操作系统做了什么大小端存储进程和线程内核态/用户态切换,引起切换的方式静态库和动态库的区别cache原理进程调度 分时系统结合优先级怎么实现进程的状态死锁内存抖动网络TCP三次握手,为什么/优化TCP四次握手,为什么,finwait1/2,closewaittimewait哪一方/为什么TCP加密拥塞控制滑动窗口ping/traceroute路由选择协议(RIP/OSPF/BGP)TC

2021-03-22 11:10:44 242

原创 redis源码笔记(2)

redis内部数据结构字符串sds(柔性数组,与内置字符串兼容)通过可以s[-1]查看字符串flag跳表(比红黑树实现简单,效率相当)压缩列表节约内存,类似数组,顺序存放数据字典(哈系表,核心)一个字典包含两个哈系表和rehashidx,因为哈系表会发生扩容缩容的rehash操作。渐进式rehash操作会被分散到多次操作中,降低耗时整数集合有序存储整形数, 二分查找)快表双向链表,结点是压缩列表,综合时间和效率,在数据量大的时候,压缩链表需要重新分配内存s

2021-02-25 15:31:10 175

原创 redis笔记(1)

nosql:方便扩展 高可扩展性大数据量 高性能数据类型多样,不需要事先设计,随去随用 高可用redis remote dictionary server支持网络、基于内存、可持久化(内存断电即失)、日志型、key-value常用命令List itemset [key] [value]get [key]keys [pattern]clear清屏redisbenchmark官方性能测试工具redis默认有16个数据库,通过select切换,DBSIZE查看数据库大小.

2021-02-25 13:31:18 253

原创 linux虚拟文件系统相关概念

VFS四个主要对象超级块对象:存储对应文件系统相关信息索引结点对象:存储对应文件的相关信息目录项文件:根据路径解析得到的对象,便于查找,只存在于内存中文件对象:表示每个进程中已打开文件的文件信息。一个文件在不同的进程中有不同的文件对象,但指向相同的索引结点被Linux支持的文件系统,都有且仅有一个file_system_type结构而不管它有零个或多个实例被安装到系统 中。每安装一个文件系统,就对应有一个超级块和安装点。超级块(对应一个文件系统实例)通过它的一个域s_type指向其对应的具体的

2021-02-19 14:37:17 137

原创 docker aufs与cow写时复制实验

/sys/fs/aufs/系统为挂载点建立的文件夹,包含权限管理/var/lib/docker/aufs/diff//包含了子镜像存储的真实文件和目录/var/lib/docker/aufs/mnt//挂载点/var/lib/docker/aufs/layers//layer//存放镜像的祖先镜像列表的文件/var/lib/docker/container//容器layer权限测试,建立文件目录结构如下hongjie-xu@hongjiexu-MS-7B89:~/dktest$ tree ../

2021-02-19 14:32:03 253

原创 计算机网络快速复习笔记

总时延=发送时延+排队时延+传播时延+处理时延RTT round-trip time(通过ping命令可以查看)物理层:数据通信的光电物理特性信道分用-复用技术数据链路层:管理相邻节点之间的数据通信奇偶校验位CRC:模二除法MTU:最大传输单元,以太网MTU为1500字节路径MTU:整个路径中最小的MTUMAC地址交换机中的MAC地址表(若没有记录,则广播,得到回应,记录)以太网协议目的地址源地址类型帧数据CR.

2020-12-23 17:27:41 180

原创 IO复用要设置socket FD非阻塞的原因

原因一:IO复用的局限:man select:Under Linux, select() may report a socket file descriptor as “ready for reading”, while nevertheless a subsequent read blocks. This could for example happen when data has arrived but upon examination has wrong checksum and is disca.

2020-12-23 14:15:54 284

原创 僵尸进程/wait/waitpid

杀死僵尸进程的父进程(僵尸进程的父进程必然存在),僵尸进程成为"孤儿进程",过继给1号进程init,init始终会负责清理僵尸进程。当一个进程正常或异常终止的时候,内核就向其父进程发送SIGCHLD信号。父进程可以选择忽略该信号,或者提供一个该信号发生时即被调用执行的函数。对于这种信号的系统默认动作是忽略它。现在要知道调用wait或waitpid的进程可能会发生什么情况:如果其所有子进程都在运行,则阻塞。如果一个子进程已经终止,正在得带的父进程获取到终止状态,则取得该子进程的终止状..

2020-12-20 19:40:27 289 1

原创 同步IO与异步IO/阻塞IO与非阻塞IO/reactor和proactor/IO过程中的拷贝

同步IO与异步IO的区别同步就是在一个功能调用时,可以阻塞也可以非阻塞等待,等待事件返回后进行事件的读写处理异步就是用户调用发出后,系统立刻返回,实际处理这个事件读写(内核空间和用户空间交互)的函数由操作系统内核完成。在完成后,通过状态、通知和回调来通知用户。因此需要操作系统支持windows(IOCP)/linux(AIO)信号驱动IO与异步IO的区别信号驱动IO:通过调用sigaction注册信号函数,等内核数据准备好的时候系统中断当前程序,执行信号函数(在这里面调用recv)。但是本质

2020-12-19 19:56:40 182 1

原创 emplace_back和push_back区别,以及vector内存变化

https://blog.csdn.net/pynash123/article/details/96287942int main(){ vector<test> a; //https://blog.csdn.net/LiQian06336/article/details/99181398 cout << "test" << sizeof(test) << endl; cout << "vector size in memory:

2020-09-10 13:26:15 439

原创 快速排序实现心得及STL中sort源码理解

快排基本思路:主元选择,这里直接选择第一个元素作为主元,可能导致时间复杂度为O(n),通常会从begin,mid,end选择中间元素做主元,同时对这三个元素进行排序(类似希尔排序)双指针,将主元放在一边,这里将主元放在第一个元素(即位置不变),两个指针start和last,start为从begin+1开始从前往后走的指针,last为从end开始从后往前的指针。遍历,start找到第一个大于...

2020-03-28 20:09:44 644 3

原创 汉诺塔问题解决代码

//#include <iostream>//#include <vector>//using namespace std;////typedef int layer;//typedef vector<int> Tower;////void show(Tower);////void Move(layer n, Tower& a, To...

2020-01-16 18:26:07 217

原创 利用const引用/指针重载最佳匹配的问题

void func(const char &a){ cout<<"non-const";}void func(char &a){ cout<<"const";}int main(){ char p = '1'; func(p); return 0;}此时func§调用的是非const的函数,如果像下面没有非const函数,则将调用...

2020-01-16 18:22:21 161

原创 约瑟夫环公式法解释

公式法:F(N,M) = (F(N-1,M) + M) % NF(1,M) = 0 (索引从0开始)F是每一轮中存活的人对应的编号。递推过程如下:已知F(1,M) = 0,即只有一个人的队伍中,存活的肯定是编号0从最后一轮求解倒数第二轮F(2,M):倒数第二轮有两个人,杀掉一个人后剩余一人;那对应的报号顺序为: 0 1 2 0,(最后一个0对应的存活的...

2019-12-29 16:01:28 503

原创 pytorch Dataloader Sampler参数深入理解

DataLoader函数参数与初始化 def __init__(self, dataset, batch_size=1, shuffle=False, sampler=None, batch_sampler=None, num_workers=0, collate_fn=None, pin_memory=False, ...

2019-11-22 15:43:19 19875 4

原创 Ubuntu18.04/16.04 安装 CUDA10.0

一开始作者用ubuntu18.04安装CUDA10.1,但碰到了一些问题,后来改成10.0,安装成功,但存在内核不兼容问题(wifi无法使用),故改成16.04 安装CUDA10.0成功一开始,尝试Ubuntu18.4安装CUDA10.1第一步安装显卡驱动ubuntu-drivers devices #会显示可用的显卡驱动sudo ubuntu-drivers autoinstall ...

2019-10-23 16:43:28 330

空空如也

空空如也

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

TA关注的人

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