自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 skip list

4。

2024-09-21 20:59:41 647

原创 murmur 算法

MurmurHash是一种高效的非加密哈希函数,适用于哈希表中的一般哈希任务。MurmurHash的名称来源于Murmur,意为一种低频的声音,体现了其设计的低碰撞率和高性能。名称来自两个基本操作,乘法(MU)和旋转(R),在其内部循环中使用。与其它流行的哈希函数相比,对于规律性较强的key,MurmurHash的随机分布特征表现更良好。MurmurHash与加密散列函数不同,它不是专门设计为难以被对手逆转,因此不适用于加密目的。

2024-09-21 19:57:36 453

原创 c++的智能指针中 unique_ptr 为什么比 shared_ptr 多一个模板参数?

【代码】c++的智能指针中 unique_ptr 为什么比 shared_ptr 多一个模板参数?

2024-02-21 19:18:32 432

原创 c语言实现hashtable

【代码】c语言实现hashtable。

2023-08-15 19:47:08 232

原创 c 语言实现模版模式

【代码】c 语言实现模版模式。

2023-08-15 19:44:43 311

原创 c语言实现策略模式

【代码】c语言实现策略模式。

2023-08-15 19:42:52 254

原创 模板妙用 ----- Wrapper

该结构体包含两个模板类型参数,Class 表示类的类型,EventFunc 表示类的成员函数指针类型,包含两个成员变量 p 和 f,用来存储类的指针和成员函数指针,operator() 实现了对成员函数的调用。该结构体包含两个模板类型参数,Class 表示类的类型,AlgorithmFunc 表示类的成员函数指针类型,包含两个成员变量 p 和 f,用来存储类的指针和成员函数指针,Run 实现了对成员函数的调用。在示例代码中,定义了一个基类 Algorithm,包含一个纯虚函数 Run,表示算法的执行函数。

2023-07-21 14:52:21 99

原创 GC书籍笔记

垃圾回收的目的是回收程序不在使用的对象所占用的空间。任何自动内存管理系统都面临三个任务:为新对象分配空间确定存活对象回收死亡对象所占用的空间。

2023-07-14 17:41:44 507

原创 Compare-and-Swap 和 Read-Modify-Write

原子的read-modify-write操作——简称RMW——要比原子的load/store更复杂。RMW允许读一块共享数据的同时还原地修改它的值。以fetch_add为例,它首先读取一个共享变量的当前值,对这个值做加法,再将新的值写回去——这3步是原子完成的。你可以用锁来完成同样的操作,但这就不是无锁的了。而RMW操作则天生就被设计为是无锁的。RMW操作可以受益于任何CPU的无锁指令,如ARMv7的ldrex/strex。

2023-07-13 20:22:29 463

原创 CRTP 与 mixin

C++中有一种很特别的模式,称为Curiously Recurring Template Pattern,缩写是CRTP。从它的名字看,前三个词都是关键字。Curiously,意思是奇特的。Recurring,说明它是递归的。Template,说明它与模板有关。最常见的CRTP形式就很符合这三个关键字:确实挺奇特的:派生类继承自一个用派生类特化的基类,相当于自己特化了自己。这里面应用到了C++模板的一个特性:与模板参数有关的代码的编译会推迟到模板实例化时进行。最经典常见的是 enable_shared_f

2023-07-12 19:42:44 247

原创 mixin 实践

可以解决菱形继承等问题,代码如下。

2023-07-12 17:43:08 56

原创 mixin 思想与实践

一个独立的类(如Person)与一个mixin的区别在于,一个mixin只建模小的功能点(如printing或displaying),不是用来独立使用的,而是给其它需要这个功能的类做组合的。成一个新的类,像乐高一样,满足需求。如果你新增了基础类,只要它是和其它基础类正交的,就可以扩展到这个组合类里。可以用继承来做,每个概念变成一个接口,然后具体类去实现这些接口。mixin要解的问题:如何建模一系列正交概念。,它就是用来与其它类或mixin做组合的。mixin是给一组基础类,每个都建模了一个。

2023-07-12 17:40:48 142

原创 my sqrt

【代码】my sqrt。

2023-07-10 20:14:15 76

原创 自旋锁 spinlock

自旋锁和互斥锁都是用于保护共享资源的锁,但它们的实现方式和特点有所不同:实现方式:互斥锁采用的是阻塞等待的方式,即当一个线程请求锁时,如果锁已经被其它线程占用了,那么该线程将被阻塞等待,直到该锁被释放。而自旋锁则采用循环等待的方式,即当一个线程请求自旋锁时,如果锁已经被其它线程占用,则该线程会循环等待,直到轮到它获取锁为止。线程调度机制:互斥锁阻塞等待时,会把线程从运行队列中移除,等待解锁时再加入运行队列。而自旋锁循环等待时,线程不会被移除运行队列,而是等待占用锁的线程释放锁。

2023-06-16 19:29:06 456

原创 Reactor模式

常见的网络模型。

2023-05-17 15:29:38 348

原创 vector和unique_ptr及clear操作

【代码】vector和unique_ptr及clear操作。

2023-05-09 09:26:57 196

原创 libgo 流程分析(1)

libgo主要的功能模块主要包括:调度器( Scheduler )、处理器( Processer )、协程( Task )和一个FastSteadyClock。其中 Scheduler -> Processer -> Task 三层逻辑结构实现了对协程( Task )的生命周期管理和调度和运行。scheduler 功能Processer的功能。

2023-04-27 17:17:37 528

原创 ceph async_messenger 如何工作

2023-04-21 11:14:01 82

原创 ceph async_messenger init 流程

2023-04-21 11:08:06 74

原创 Rocksdb write 时序图

2023-04-15 15:27:04 87

原创 Rocksdb Get 流程

ref:

2023-04-15 15:17:41 146

原创 gdb如何打印stl各种容器

[root@lcl]# cat ~/.gdbinit## STL GDB evaluators/views/utilities - 1.03## The new GDB commands:# are entirely non instrumental# do not depend on any "inline"(s) - e.g. size(), [], etc# are extremely tolerant to debugger

2023-04-08 15:09:14 426

原创 C++ function 函数

【代码】C++ function 函数。

2023-03-30 16:36:57 164

原创 内存分配器—TcMalloc

高性能。大多数对象的分配和释放都不需要产生太多的竞争,因为tcmalloc 维护了thread-cache 来提供当前线程的内存分配需求。所以,应用大多数的内存申请需求不会有锁的竞争,而且在多核场景有较好的扩展性。灵活的使用内存资源。用户不使用的内存,tcmalloc会选择服复用或者归还操作系统。降低了每个请求的内存开销。通过分配相同大小的page 降低内存使用的开销,这在小对象场景较为有效。内部信息统计开销较低。能够开启细粒度的应用内存占用信息,来帮助用户展示tcmalloc内部内存使用的细节。

2023-03-18 17:25:35 509

原创 RocksDB模块功能说明

RocksDB模块基本说明

2023-03-09 11:07:35 320

原创 计数排序

【代码】计数排序。

2023-02-24 10:22:00 67

原创 性能调试时常用命令

性能优化

2023-02-18 15:06:01 130

原创 Liunx 性能优化

Linux 性能优化

2022-12-29 15:43:04 84

原创 Linux 调度

Linux 调度

2022-12-20 11:34:04 72

原创 C++11 package_task

【代码】C++11 package_task。

2022-11-30 11:39:29 113

原创 C++ promise

【代码】C++ promise。

2022-11-30 11:39:28 652

原创 sharedPtr

shared_ptr

2022-11-30 11:39:04 787

原创 C++ socket demo

【代码】C++ socket demo。

2022-11-30 11:38:16 328

原创 C++ thread common

【代码】C++ thread common。

2022-11-30 11:37:55 115

原创 C++ unique_ptr

【代码】C++ unique_ptr。

2022-11-30 11:37:23 70

原创 C++ threadLocal

【代码】C++ threadLocal。

2022-11-30 11:37:02 413

原创 性能优化总结

性能优化总结

2022-11-30 11:36:36 701

原创 Linux 同步机制

【代码】Linux 同步机制。

2022-11-30 11:26:12 522

原创 FuncThreadCallBack

【代码】FuncThreadCallBack。

2022-11-29 11:07:40 111

原创 C++ fifo and epoll

【代码】C++ fifo。

2022-11-29 11:05:03 165

空空如也

空空如也

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

TA关注的人

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