c++
文章平均质量分 79
不叫大仁不姓李
别近视别近视别近视 球球了
展开
-
tc_mem_chunk 的使用
tars源码学习笔记2释放空间入参为地址时:mmca的deallocate中,会先计算要释放的的内存是否在自己的范围内,不在的话递归下去调用下一个mmca的deallocate。如果在自己的范围内的话,会先计算地址在哪一个mca负责的空间内。因为在初始化的时候说过每一个mca管理的分块的数量是一样的,然后是用数量乘块大小来计算出每一个mca的空间,所以在内存空间中,mca是根据块大小由小到大排列的,而且所有大小相同的块是连续在一起的。也是这个原因可以遍历vBlockSize累加计算出pAdd.原创 2020-12-23 11:33:05 · 173 阅读 · 0 评论 -
tars源码学习-内存管理
tars源码学习笔记1内存分配器原始内存块 TC_MemChunkTC_MemChunk(简称mc):内部有两个指针,一个指向header,一个指向所管理的内存空间,管理的内存空间的具体信息都在header里,而且header占的空间也在自己的管辖范围内提前分出来(后面也是类似结构)。所管理的内存空间会按照指定数值大小分块管理,称为block。头部结构tagChunkHead:记录管理区域内的信息:每个block大小、block数量、第一个空闲block的index、总计的空闲bloc.原创 2020-12-21 10:51:03 · 196 阅读 · 0 评论 -
CRTP 静态多态
CRTP对于RAII的虚函数的效率问题,是因为没有办法确定指针的具体类型,才采用了运行时动态判断,但是这样会导致效率降低。看过一篇知乎的文章说使用benchmark测得普通函数与虚函数的差距在8-10倍,具体原因跟很多方面有关。CRTP就是为了优化掉这个问题而提出的一种模式,将原来的虚继承改为了继承“定制的“模版类。这样的话原本虚函数的调用,改为了使用强转指针类型并调用其成员函数的方式实现了,对于类型的判断从原本的“运行时“变成了“编译时“。下面附上四个例子来一步步看看怎么实现:https://git原创 2020-09-08 15:18:35 · 598 阅读 · 1 评论 -
Makefile 基础学习笔记
Makefile 基础学习笔记makefile 有三部分组成,一部分是变量,一部分是依赖关系,一部分是执行命令<变量1> = <值><依赖者>: <被依赖者1> <被依赖者2> <命令1> <命令2>变量变量一般为全大写,使用的时候用 $(xxx) 的方式有多种赋值方式=赋值:表示使用<值>进行赋值,若<值>中有使用变量2,则变量2用在makefile展开完成后的最终原创 2020-07-06 15:33:36 · 180 阅读 · 0 评论 -
[c++]线程池简单例子(with barrier)
简单实现了一版线程池,为了弄epoll匆匆写的,,,,,如果有什么问题的话也麻烦指出来,,,多谢原创 2019-05-07 18:27:23 · 366 阅读 · 0 评论 -
[c++]字符串匹配kmp算法
本来是想写一个split函数,暴力比较的,后来写完后加上了kmp算法(忽略一大堆头文件…在别的代码里写的…)#include <stdio.h>#include <sys/epoll.h>#include <sys/socket.h>#include <sys/types.h>#include <netinet/in.h>#i...原创 2019-05-10 10:33:38 · 339 阅读 · 0 评论 -
[c++]socket的简单实现
socket使用的demo(并没有设置非阻塞)server:#include <sys/socket.h>#include <netinet/in.h>#include <arpa/inet.h>#include <stdio.h>#include <stdlib.h>#include <unistd.h>...原创 2019-05-06 12:30:56 · 382 阅读 · 0 评论 -
[c++] 学习epoll的历程(附调试用demo)
最近在看epoll查阅了很多文章,,,之所以不好理解是因为涉及到的东西太多组合方式也各不一样,在此处罗列一下。。。两个fd一个是 listenfd=socket(…) 得到的,用来监听socket的fd另一个是 connfd=accpt(…) 得到的,用来交互数据的fd,是在有cli连接到socket的时候生成的两者不同都要分别进行各自的设置两种状态阻塞与非阻塞这个是针对fd进行的设...原创 2019-05-08 12:31:22 · 1625 阅读 · 1 评论 -
[c++][python] swig的简单使用
1.写逻辑1.1 编写要实现某功能的类(cpp)编写要封装的类,最好接口都是简单的数据类型便于处理,要有独立的头文件// myfunc.hclass Test(){public: Test(); ~Test(); void test();};// myfunc.cpp#include "myfunc.h"#include <iostream>...原创 2019-05-08 10:01:34 · 243 阅读 · 0 评论 -
[c++] 函数作为参数传入函数进行调用的例子
#include <cstdio> ...原创 2019-04-11 10:30:42 · 264 阅读 · 0 评论 -
[c++] 文件操作相关的例子
#include <cstdio> ...原创 2019-04-11 10:27:30 · 102 阅读 · 0 评论 -
[c++] 多线程demo
#include <cstdio> ...原创 2019-04-11 10:21:04 · 402 阅读 · 0 评论