- 博客(95)
- 收藏
- 关注
原创 c++编译错误
同样的代码写了个demo编译没问题,使用了一个宏定义展开的问题error invalid types ‘int32_t {aka int}[int]’ for array subscript
2022-07-06 16:30:35
622
1
原创 ndpi的dpdk模式安装
下载ndpihttps://codeload.github.com/ntop/nDPI/zip/refs/heads/dev解压unzip nDPI-dev.zipcd nDPI-devcat example/README.DPDKPrerequisites-------------You need to install and compile DPDK in your HOME directory as explained inSee http://core.dpdk.org/d
2021-12-29 15:12:30
899
原创 深入理解零拷贝技术
文章目录前言一、什么是零拷贝?传统网络IO零拷贝二、DMA 参与下的数据四次拷贝三、UIO简介四、零拷贝技术实现网络IO零拷贝技术实现1、sendfile:(1)利用 DMA 技术(2)传递文件描述符代替数据拷贝2、mmap:3、direct I/O:总结前言在海量高并发大存储的时代,零拷贝技术被提及并应用的频次越来越高,很多常见的开源组件也都围绕着这个核心技术和方向进行性能方面的优化提升,性能和稳定性都有了,那使用者会自然而然的多起来。如kafka、mysql、dpdk等。一、什么是零拷贝?.
2021-09-09 09:57:38
770
原创 c++一些面试时的基础知识复习
1、指针和引用的区别(1)指针有自己的一块空间,而引用只是一个别名(2)sizeof一个指针大小为4字节(32位,64位的话为8字节),而sizeof引用则为引用对象的大小(3)指针可以被初始化为NULL,而引用必须被初始化,且必须是一个已有的对象(4)作为参数传递时,指针需要解引用才可以对对象进行操作,而直接对引用的修改都会改变所引用的对象(5)指针可以指向其他对象,而引用只能是一个对象的引用,不能被改变(6)指针可以是多级的,而引用没有分级(7)如果返回动态分配内存的对象或者内存,必须使用
2021-07-14 17:55:39
256
1
原创 2021 centos6.5的源
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak执行下面命令,新建CentOS-Base.repo配置:vim /etc/yum.repos.d/CentOS-Base.repo复制粘贴如下命令[centos-office]name=centos-officefailovermethod=prioritybaseurl=https://vault.centos.org/6.10/os/x86_6
2021-06-24 15:41:55
528
原创 带深拷贝的类对象传引用赋值操作的注意事项
class CA{public:CA(){}~CA(){ delete cData;}CA(CA& a) { memcpy(cData, a.cData); }char* cData;};class CB{private: CA m_cA;public:void geta(CA &ca){ ca = m_cA;}};void test(){...
2021-06-22 17:56:16
79
原创 调用mysql_init之后数据越界,破坏了后面其他数据结构的数据
#include <sys/types.h>#include <stdlib.h>#include <string.h>#include <time.h>#include <mysql.h>#include <mysqld_error.h>#include <errmsg.h>#define MAX_RETRY_TIMES 10#define MAX_STR_LEN 1024typedef struct _
2021-06-22 16:02:59
175
原创 dpdk在amd服务器上收包imissed
DPDK16在其他服务器没问题,在一台新来的AMD处理器AMD EPYC 7502 32-Core Processor,Centos 7.4,英特尔82599网卡,启动dpdk应用程序无法收到报文。查了一下发现是AMD的bug,需要给内核加入 iommu=soft,启用软件iommu功能。在grub中添加ommu=soft即可。修改/etc/default/grub, 编辑GRUB_CMDLINE_LINUX选项:添加此选项GRUB_CMDLINE_LINUX=“iommu=soft”添加前:G
2021-06-22 15:29:46
674
转载 linux下c++遍历目录下的文件
#include <sys/types.h>#include <sys/stat.h>#include <unistd.h>#include <dirent.h>#include <iostream>#include <string.h>#include <stdio.h>#include <fcntl.h>#include <stdlib.h>using namespace st
2021-03-22 16:51:19
618
转载 c语言中函数参数处理顺序
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本文链接:https://blog.csdn.net/low5252/article/details/94600500下面我们来看2个案例,分析下c语言中函数参数处理顺序。第一个: #include "stdio.h" void fn(int a,int b,int c) { printf("%d,%d,%d", a, b, c); }
2021-03-05 15:40:55
1146
原创 23种设计模式的应用场景
简单工厂Simple Factory,是由一个工厂对象决定创建出哪一种产品类的实例,是工厂模式家族中最简单实用的模式。工厂方法Factory Method,定义一个用于创建对象的接口,让子类决定实例化哪一个类,工厂方法使一个类的实例化延迟到其子类。为了遵循扩展开放,修改关闭原则,将简单工厂类转换为工厂方法接口,将其Switch分支分离成子类去继承工厂方法接口类,顺利的将创建对象的过程延迟到子类。抽象工厂Abstract Factory,提供一个创建一系列相关或相互依赖对象的接口,而无..
2020-12-31 11:46:33
1409
原创 centos6.5设置系统时间,hwclock: Open of /dev/rtc failed, errno=6: 没有那个设备或地址.
搜了很多方法,都试了,首先是更新util-linux-ng各种版本都试了,不管用,下面是不管用的各种方法:1、下载util-linux-ng各个版本的地址:http://ftp.be.debian.org/pub/linux/utils/util-linux-ng/hwclock使用不了,报错:hwclock: Open of /dev/rtc failed2、创建/dev/rtc#c...
2020-03-27 11:50:10
1220
原创 终端连接mysql,python连接mysql设置支持中文
python连接mysql:https://blog.csdn.net/qq_34342154/article/details/78575300mysql默认的编码方式不支持中文。如何使mysql支持中文?1、在每次创建表的时候都在最后加上character set = utf8就可以很好的支持中文。create table entries2 ( id int ...
2019-12-13 14:16:41
332
原创 shell echo 原样输出特殊字符串
#!/bin/bashname="Shell教程"url="http://c.biancheng.net/shell/"echo "读者,你好!" #直接输出字符串echo $url #输出变量echo "${name}的网址是:${url}" #双引号包围的字符串中可以解析变量echo '${name}的网址是:${url}' #单引号包围的字符串中不能解析变量输出:读...
2019-12-03 16:40:31
10738
原创 修改文件中的tab为空格
TAB替换为空格::set ts=4:set expandtab:%retab!空格替换为TAB::set ts=4:set noexpandtab:%retab!加!是用于处理非空白字符之后的TAB,即所有的TAB,若不加!,则只处理行首的TAB。设置vim编辑器的tab为4个空格临时设置tab长度为4:Vim命令模式::ts=4:set expandtab永久设置t...
2019-11-06 14:53:44
575
转载 Ubuntu的中文乱码问题
本文链接:https://blog.csdn.net/weixin_39792252/article/details/80415550ubuntu中文支持,及中文乱码问题状况:所用的Linux系统不支持中文,遇见中文就zz了。ORZ…目标:使系统/服务器支持中文,能够正常显示。首先,安装中文支持包language-pack-zh-hans:sudo apt-get install lan...
2019-11-06 14:48:18
263
原创 libtool: error: error: cannot install 'xxx.la' to a directory not ending in /usr/local/lib64
解决办法:make clean之后重新:make &&make install因为之前编译之后,修改了configure选项直接又编译了
2019-11-05 11:38:23
4217
原创 安装python多版本导致yum命令错误(No module named yum)的解决办法
系统自带python2.6之后又安装了python2.7,修改了/usr/bin/python的链接打开/usr/bin/yum文件,替换为python的正确路径,即可解决问题。将文件中的#!/usr/bin/python修改为#!/usr/bin/python2.6其他错误解决办法yum报错:Loaded plugins: fastestmirrorLoading mirror sp...
2019-09-25 14:16:14
968
原创 使用yum下载rpm包而不安装
方法一:yumyum命令本身就可以用来下载一个RPM包,标准的yum命令提供了–downloadonly(只下载)的选项来达到这个目的。$ sudo yum install --downloadonly 默认情况下,一个下载的RPM包会保存在下面的目录中:/var/cache/yum/x86_64/[centos/fedora-version]/[repository]/packages...
2019-09-25 14:10:17
554
原创 VMWare redhat 7.4 虚拟机的安装配置
1、下载安装文件rhel-server-7.4-x86_64-boot.iso另一个dvd的安装检查依赖包出错过不去,用这个安装可以通过2、新建虚拟机新建下一步,选择linux,64位,下一步,输入名称,位置,再下一步,选择40G磁盘、2核,2cpu,完成,之后启动虚拟机开始安装主要是这个位置选择:软件->安装源默认的,软件选择点进去,选这个地方选了最小安装之后无图形...
2019-09-17 15:24:35
846
原创 编译dpdk报错,以及kernel-devel与内核版本不一致的解决办法
1、编译dpdk-1.8时候报错‘PCI_MSIX_ENTRY_CTRL_MASKBIT’ undeclared (first use in this function)原因是安装服务器操作系统centos6.5的时候装的是简化版,不带开发环境包,于是直接在线安装了kernel-devel和gcc,下面的做法是错误的sudo yum install "kernel-devel-uname-r...
2019-08-30 16:09:29
6667
原创 c++ python函数执行时间毫秒计时
c++ Linux下精确至毫秒#include <sys/time.h>#include <iostream>#include <time.h>double get_time(){ struct timeval time ; if (gettimeofday(&time,NULL)){ return 0; ...
2019-08-22 17:04:57
778
原创 绑定cpu的线程类封装和不绑定cpu的线程类封装
绑定cpu的线程:threadutils.h#ifndef _THREADUTILS_H_#define _THREADUTILS_H_/* 使用方法 * 创建类,继承CAbstractRunnable * 实现线程处理函数(可实现多个)void *run1(struct SThreadInfo* pThreadInfo); * 注册处理函数REGIST_RUN_FUNC(A,ru...
2019-08-22 11:56:24
192
原创 关于网络分层和负载均衡
1、UDP和TCP是TCP/IP的第三层传输层,对应OSI的第四层传输层2、IP是TCP/IP的第二层互联层,对应OSI的第三层网络层二层负载均衡(集群中的server具有相同的IP)对外负载均衡服务器使用virtual ip(虚ip)。服务器收到请求报文,通过改写报文的目标mac地址的方式将请求转发到目标机器实现负载均衡。三层负载均衡(对外依然提供一个vip虚IP)集群中不同的机器采...
2019-08-14 10:07:07
254
转载 c++面试中被问到的静态绑定和动态绑定
转自:https://www.cnblogs.com/lizhenghn/p/3657717.htmlC++在面向对象编程中,存在着静态绑定和动态绑定的定义,本节即是主要讲述这两点区分。我是在一个类的继承体系中分析的,因此下面所说的对象一般就是指一个类的实例。首先我们需要明确几个名词定义:静态类型:对象在声明时采用的类型,在编译期既已确定;动态类型:通常是指一个指针或引用目前所指对象的类...
2019-08-06 16:48:34
242
原创 shell字符串替换每行首尾最短模糊匹配的第一个字符串
#!/bin/bashwhile read linedo echo -e $line | sed -e 's/begin\([^end]*end\)/replace/'done < filename.txt
2019-08-02 17:20:35
1702
转载 redis hash的数据结构和实现过程
1、数据结构/*Hash表一个节点包含Key,Value数据对 */typedef struct dictEntry { void *key; union { void *val; uint64_t u64; int64_t s64; double d; } v; struct dictEntry ...
2019-07-30 13:48:24
289
转载 do{}while(0)的用法
作者:好好编程来源:CSDN原文:https://blog.csdn.net/qw8880000/article/details/80198581版权声明:本文为博主原创文章,转载请附上博文链接!1、使用do{}while(0)来编写单进单出函数。在一些函数里,我们希望在函数的入口与出口处做一些配对的操作,比如内存的申请与释放、文件的打开与关闭、加锁与解锁等。在这样的函数里可以设计成单进...
2019-07-25 10:34:39
824
原创 c++stl笔记 template
1、测试在class template中拥有static data members#include <iostream>using namespace std;template <typename T>class testClass{ public: static int _data; //int _data; };//静态变量...
2019-07-19 11:50:25
310
转载 python由hashmap key引起的class两个相同值的对象比较的总结
摘要什么是python对象的标识python对象相等的判断自定义python对象相等的条件python对象的标识python对象标识就是python对象自身的要素,python对象主要有3要素:id:相当于对象在内存中的地址,相当于c的指针,可以用id(对象)来获取。类型:python的基本对象有Number、String、List、Tuple、Set、Dictionary六种,当然...
2019-07-18 18:06:44
490
原创 python 字典千万数量的key查询很慢
原来自己写了个hashmap存储,写了一半查资料的时候看到python的字典dict本身就是hashmap,就直接用字典去存了这千万的数据,吧嗒吧嗒代码写完了,处理流程也写完了。上线一跑,从2个多G的文件中加载五六分钟加载完,查询平均每4秒左右才查到,有点慌,这。。。。 查python字典的使用,有上千万的应用的例子,用的是整型的key,看起来查询效率是O(1),哪里的问题造成我的进程字典...
2019-07-12 17:07:44
4058
原创 python文件加密解密
#pip install pycryptoaes字符方式加密#!/usr/bin/python# coding:utf-8import osimport sysfrom Crypto.Cipher import AES#函数的俩参数长度都得是16的倍数def aes_encrypt(msg, key = "wisdomtetestAES", iv="B1D8D3D0BBD8CFE...
2019-07-12 16:30:04
5688
转载 C++常用命名法与书写规范
常用命名法有三种:驼峰命名法、匈牙利命名法、帕斯卡命名法。这三种命名方法各有千秋,以庄子的齐物论来说就是“道无终始,物有死生,不恃其成”。我们要“吸百家之长,圆我代码功夫”,废话说了几行了,综合出来的代码规范如下:一、标识符1、简单、合理、准确的英文单词(不要缩写),切忌汉语拼音。(eg:不要把CurrentWidth写出NowWidth)2、不要仅靠大小写区分标识符3、避免一个标识符多...
2019-07-10 15:28:29
117
原创 python操作redis,一次插入字典多个值
import redisfd = redis.Redis(host='127.0.0.1', password="123!@#456", port = 6379, db =1)#连接池#pool = redis.ConnectionPool(host='127.0.0.1',password='123!@#456',port=8080)#hset(name, key, value)fd....
2019-07-10 15:11:31
7868
原创 centos6.5下安装ffmpeg包含x264 x265
gcc g++ cmake一些开发工具都装了之后下载提示:“正在连接 downloads.xiph.org|140.211.15.28|:443… 已连接。错误: 证书通用名 “xiph.org” 与所要求的主机名 “downloads.xiph.org” 不符。要以不安全的方式连接至 downloads.xiph.org,使用‘–no-check-certificate’ ”的 在wge...
2019-05-22 17:49:30
1461
原创 dpdk无锁环形队列的使用
入口使用dpdk,数据包解包分析后续处理线程性能太低,cpu很大一部分浪费在多线程锁开销上,于是想用dpdk无锁队列,看是否有改善。使用前不知道dpdk的ring是否能在收发包之外使用,也没找到实际使用跟收发包无关的例子也不需要使用mbuf,需要存储一个指针的队列,直接拿过来用看看可不可以。前面dpdk初始化完毕,后面跟dpdk无关的地方,直接包含头文件使用,根据例子创建环形队列(个数为2的...
2019-04-08 18:23:46
1643
原创 virtualbox常见操作参考
本文主要记录了在命令行对虚拟机进行修改、配置等操作过程,主要是常见且不易操作的地方。注意:对vm的修改,只能在其停机后进行,否则不会成功的。整机克隆来到从4.2版开始,加入了虚拟机整机克隆,并解决因网卡、磁盘的uuid相同的问题(当然操作系统的’udev’设置管理也要支持)VBoxManage clonevm |[–snapshot |][–mode machine|machinea...
2019-01-17 15:17:35
2139
原创 VBoxManage 命令操作,详细的网络设置命令
VBoxManage [-v|-version] 显示virtualbox的版本号VBoxManage -nologo 隐藏logoVBoxManage -convertSettings 允许自动转换设置文件VBoxManage -convertSettingsBackup 允许自动转换设置文件,并在转换前作备份VBoxManage ...
2019-01-16 10:50:21
6703
原创 Could not find matplotlibrc; using defaults
python使用matplotlib一直报错离线安装的matplotlib,安装的问题,卸载重新装也不对,改成在线安装也不对,这么个小问题,查来查去没找到解决办法,缺少什么文件,会不会是matplotlibrc这个文件?拷贝了一个过来解决了/usr/lib/python2.7/dist-packages/matplotlib/__init__.py:820: UserWarning: Coul...
2019-01-09 19:44:10
999
原创 ubuntu启动报错/dev/sda4:UNEXPECTED INCONSISTENCY; RUN fsck MANUALLY
断电或者非正常关机之类的误操作,系统起不来这台服务器磁盘被拔出去检测过,之后再插回来就这样起不来了/dev/sda4:UNEXPECTED INCONSISTENCY; RUN fsck MANUALLY.(i.e, without -a or -p options)fsck exited with status code 4The root filesystem on /dev/sda...
2019-01-08 11:45:55
2756
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人