自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 redis主从同步策略

https://blog.csdn.net/weixin_42711549/article/details/83061052

2020-09-30 02:57:19 252

转载 redis过期键删除策略

1.惰性删除:用到时发现过期才删除2.定期删除:定期随机选择一批删除3.主动删除:当内存不足时主动删除过期键参考:https://www.cnblogs.com/zjoch/p/11149278.html

2020-09-30 02:43:30 108

转载 联合索引数据结构

https://www.cnblogs.com/lanqi/p/10282279.html

2020-09-30 02:36:10 218

转载 慢查询优化

1.开启慢查询2.设定时间阈值3.将执行速度慢的语句打印出来4.分析sql语句原因:1.没走索引2.没有索引3.limit没有优化4.数据表结构不合理等参考:https://blog.csdn.net/qq_35571554/article/details/82800463...

2020-09-30 02:33:56 89

转载 B+树和哈希索引的区别

https://www.cnblogs.com/zengkefu/p/5647279.html

2020-09-30 02:21:46 257

转载 B+树能存储多少条数据

https://blog.csdn.net/csdnlijingran/article/details/102309593

2020-09-29 14:20:51 828

原创 C++迭代器失效的情况

分为两种情况:1.vector(内存连续的数组,还有deque等),增加、删除元素都会导致迭代器失效2.其他容器,删除当前迭代器指向的元素会导致迭代器失效,别的迭代器不受影响

2020-09-28 21:02:23 86

原创 std::move和std::forward

作用:都是一样的,内部实现都是static_cast<T&&>。主要是语义不一样:std::move主要是为了把一个值(不管是左值还是右值)变成一个右值,从而触发参数为右值引用的函数,要是没有这个函数,再触发const T&的函数。std::forward主要是用在模板编程中的折叠引用,无论是传入左值还是右值,折叠引用进入函数后都是左值,std::forward的目的就是恢复该值原来的左/右值属性。右值引用的作用:减少传入右值时的拷贝考虑构造函数:传入一个左值时,

2020-09-28 20:52:52 143

原创 点云配准资源

常见方法:https://cloud.tencent.com/developer/article/1631275深度学习CVPR:http://www.soolco.com/post/62632_1_1.html深度学习方法:https://angericky.github.io/2019/09/17/%E3%80%90%E7%AC%94%E8%AE%B0%E3%80%91%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0%E5%9C%A83D%E7%82%B9%E4%BA%91%

2020-09-25 21:21:21 236

转载 3DMatch

https://blog.csdn.net/xckkcxxck/article/details/84671024

2020-09-25 21:11:11 386

转载 KNN算法和KD树

https://www.cnblogs.com/21207-iHome/p/6084670.html

2020-09-25 16:07:12 135

原创 RANSAC算法

参考:https://blog.csdn.net/robinhjwy/article/details/79174914步骤:1.选一小部分点,作为局内点2.根据局内点拟合出模型3.计算所有局外点和模型的误差,误差小的点加入到局内点4.根据新的局内点拟合出新的模型5.计算所有局内点的误差,作为评分每轮迭代后,出现两种结果:1.局内点数目太少,抛弃2.新的模型评分更高,选取新的模型,否则抛弃...

2020-09-25 16:02:24 107

原创 排序的稳定性

https://www.cnblogs.com/Lis-/p/12577243.html不稳定:快排,堆排,选择:因为都涉及到交换稳定:插入,归并,冒泡

2020-09-20 01:10:37 78

原创 三次握手ISN的生成

ISN=M+F(localhost, localport,remotehost, remoteport)其中M是一个计时器,每4毫秒加1。F是一个Hash算法,比如MD5或者SHA256。

2020-09-20 00:21:20 625

原创 多线程与信号

1.每个线程都有自己屏蔽信号的mask2.action函数不能指定,只能继承主线程3.当进程收到一个信号时,会遍历所有线程,把信号传递给第一个可以传递的线程(即没有屏蔽这个信号)参考:https://www.cnblogs.com/coding-my-life/p/4782529.html...

2020-09-19 23:46:26 93

转载 Linux线程模型

https://zhuanlan.zhihu.com/p/57349087

2020-09-19 23:10:29 100

转载 静态库和动态库

https://blog.csdn.net/qq_41786318/article/details/79545018

2020-09-19 21:41:10 82

原创 socket的各种状态

https://www.cnblogs.com/guanghuiqq/p/11208469.html主要就是:1.opened2.connected3.readable4.writable5.closed

2020-09-19 19:52:55 548

原创 内存泄漏、死锁怎么检测?

内存泄漏:valgrind,gpreftools,vs自带的内存检测工具死锁:详见:https://blog.csdn.net/a13602955218/article/details/108685059调试:gdb调试线上代码,打印堆栈信息

2020-09-19 19:48:58 194

原创 死锁条件、预防、避免、检测、解除

https://blog.csdn.net/jgm20475/article/details/81297819条件:1.互斥条件2.请求与保持3.不可剥夺4.循环等带预防:1.原子操作2.一次分配所有资源3.申请资源前先释放别的4.资源申请顺序避免:银行家算法:分配资源前先计算这次分配是否会产生死锁检测:画出资源分配图,看看有没有循环引用解除:直接剥除进程的资源...

2020-09-19 19:45:37 154

转载 Linux信号机制

https://blog.csdn.net/qq_37653144/article/details/81942026简单说,就是每个PCB有一个信号域,每收到一个信号,内核就会在该信号域置位,当程序从内核态返回到用户态时,就检查该信号域,发现产生了信号就去执行相应的信号处理函数。...

2020-09-14 15:38:17 178

转载 上传文件POST报文的格式

https://blog.csdn.net/huanongying131/article/details/78426219

2020-09-14 15:21:15 1743

原创 成员函数调用虚函数会怎样

class A{public: void func(){ cout << "hello" << endl; vfunc(); } virtual void vfunc(){ cout << "vfuncA" << endl; }};class B:public A{public: void func(){ vfunc(); } v

2020-09-14 13:47:55 382

转载 epoll监听的常见事件

https://blog.csdn.net/q576709166/article/details/8649911

2020-09-14 13:30:45 833

转载 三次握手四次挥手状态

https://blog.csdn.net/qq_38950316/article/details/81087809

2020-09-12 16:53:24 73

转载 多线程中子线程调用fork,会复制其他线程吗

不会,只会复制当前的线程参考:https://www.cnblogs.com/liyuan989/p/4279210.html

2020-09-12 14:55:27 779

转载 mysql索引失效的情况

https://blog.csdn.net/qq_34820803/article/details/105635720

2020-09-11 01:29:14 88

原创 海量数据求中位数

参考:https://blog.csdn.net/randyjiawenjie/article/details/69685911.最简单:排序2.堆:4G数据,1G内存步骤:先将1G内存都塞进一个大顶堆,然后小于堆顶的数,插入堆,并pop堆顶,一次遍历后,得到第1G大的数;第二次遍历,过滤小于第1G大的数,同样塞满一个1G的大顶堆,小于堆顶的插入堆,并pop堆顶,得到第2G大的数字3.二分+统计比如数字范围是0-1000w那么统计0-500w和500w-1000w的数字个数,若0-500w的数

2020-09-11 00:44:41 727

原创 dfs求组合

1.结果无重复:a.无序:[1,3]和[3,1]是同一个结果:idx不从0开始b.有序:[1,3]和[3,1]不是同一个结果:idx从0开始2.不能使用同一元素:加visited数组

2020-09-05 17:32:22 136

原创 堆priority_queue的使用

priority_queue<ListNode*,vector<ListNode*>,decltype(cmp)> h(cmp);

2020-09-05 14:33:10 278

转载 GMP模型

https://zhuanlan.zhihu.com/p/168610624

2020-09-04 17:12:56 411

原创 Linux中的上下文

上下文的种类:用户级上下文:其实就是虚拟内存(mm_struct),包括数据段,代码段,堆栈,mmap等内核级上下文:内核栈硬件级:寄存器(PC,IP,BP,SP,CR3等)上下文切换类型:1.进程/线程上下文切换:1.2.3都会发生,上下文存储在用户栈2.内核上下文切换:只发生2.3,上下文存储在内核栈,内核栈每个线程都有一个3.中断上下文切换:只发生3,上下文存储在中断栈,中断栈一般每个处理器一个补充:在发生虚拟内存的切换时,需要切换页表,而页表的切换一般会导致TLB无效,同时,由于高速

2020-09-03 16:34:05 564

原创 用户栈,线程栈和内核栈

用户栈是fork后共享的主线程的栈;线程栈是主线程通过mmap生成的,存储在task_struct->mm_struct->vm_area_struct中,实际上其他线程也是能看到的;内核栈存储在task_strcut->stack中,每个线程都有一个...

2020-09-03 15:15:39 466

转载 最短路径算法:dijkstra算法

https://www.cnblogs.com/biyeymyhjob/archive/2012/07/31/2615833.html核心:记录每个点离原点的最短距离

2020-09-02 18:22:21 119

转载 最小生成树:prim和kruskal算法

https://zhuanlan.zhihu.com/p/34922624prim:以点集为对象,找最短的边kruskal:以边为对象,找最短的不形成环路的边

2020-09-02 18:20:41 183

转载 一致性哈希

https://www.jianshu.com/p/735a3d4789fc

2020-09-02 17:42:20 98

原创 kafka为什么吞吐量高

1.每个partition都是顺序写入,读写速度快2.使用了sendfile零拷贝技术,避免了内核到用户空间的拷贝

2020-09-01 11:45:13 173

原创 kafka保证消息不丢失的方法

1.producer:ack参数设置为all,表示leader和所有follower都收到了消息才算成功2.broker:设置多个follower3.把自动提交变成手动提交

2020-09-01 11:43:17 126

原创 top K问题解决方案

1.使用最大最小堆。求最大的数用最小堆,求最小的数用最大堆。2.Quick Select算法。使用类似快排的思路,根据pivot划分数组。3.使用排序方法,排序后再寻找top K元素。4.使用选择排序的思想,对前K个元素部分排序。5.将1000…个数分成m组,每组寻找top K个数,得到m×K个数,在这m×k个数里面找top K个数。...

2020-09-01 10:43:28 192

原创 快速排序的优化

1.基准的选取:随机选、前中后选中值、前中后随机选2.短到一定长度后,使用插入排序void QuickSort(vector<int>& nums, int low, int high){ if(high==low) return; else if(high-low < 6) InsertSort(L, low, high); else { int temp = Partition(L, low,

2020-09-01 10:40:57 91

空空如也

空空如也

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

TA关注的人

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