自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(32)
  • 资源 (45)
  • 问答 (15)
  • 收藏
  • 关注

原创 【高并发】高并发测试笔记

问:高并发测试一般你们用什么工具来模拟10万级别的客户端并发?在普通的电脑上可以模拟吗10万并发需要至少10万的套接字,套接字在内核中占用内存100000*6K*2~=1G内存,系统需要能够开启10W个fd。一般的系统能够能模拟问:默认每个进程只能开1024个fd,修改后最大可以10w,那就要10个进程吧每个进程的fd可以设置的只不过我担心端口能不能满足,因为端口只到65535,如果都是活跃的,就不行了问:不想自己写模拟客户端的程序有什么现成的工具吗...

2020-05-29 17:27:28 563

转载 【WebRTC】WebRTC介绍及简单应用

WebRTC,即Web Real-Time Communication,web实时通信技术。简单地说就是在web浏览器里面引入实时通信,包括音视频通话等。WebRTC实时通信技术介绍 如何使用 媒体介绍 信令 STUN和TURN介绍 对等连接和提议/应答协商 数据通道 NAT和防火墙穿透 简单应用 其它WebRTC实时通信技术介绍WebRTC实现了基于网页的语音对话或视频通话,目的是无插件实现web端的实时通信的能力。WebRTC提供了视频会议的核心技术,包括音视频的采

2020-05-28 19:34:01 927

原创 【C++】迭代器iterator研究(input iterator、output iterator等)----编辑中

迭代器定义1.迭代器(iterator)是一中检查容器内元素并遍历元素的数据类型。(1) 每种容器类型都定义了自己的迭代器类型,如vector:vector<int>::iterator iter;这条语句定义了一个名为iter的变量,它的数据类型是由vector<int>定义的iterator类型。(2) 使用迭代器读取vector中的每一个元素:vector<int> ivec(10, 1);for(vector<int>::i.

2020-05-28 11:22:39 2207 1

原创 【C++】search、search_n和find、find_if

#include <iostream>#include <algorithm>#include <array>#include <vector>#include <functional>using namespace std;int main(){ array<int,8> test = {3,5,7,7,11,6,17,19}; array<int,2> t2 = {11,13}; array.

2020-05-27 19:10:20 1849 1

原创 【C++】C++ STL中 next_permutation,prev_permutation函数的用法

next_permutation作用产生全排列。 f(n)=n!abc这个序列有六个可能的排列组合:abc,acb,bac,bca,cab,cba。next_permutation和prev_permutation区别next_permutation(start,end),和prev_permutation(start,end)。这两个函数作用是一样的,区别就在于前者求的是当前排列的下一个排列,后一个求的是当前排列的上一个排列。至于这里的“前一个”和“后一个”,我们可以把它理解为序列的.

2020-05-27 17:45:19 711

转载 【C/C++】字符串处理|字符串比较误区|挑出数字字符|npos--编辑中

之前一直在写java,将java的字符串比较搞清楚后,写c++了,发现不适用了,还是存在很多细微差别,这里做个总结。在比较两个字符串时不能利用符号“==”,如(“aaa”==“aaa”),“==”符号比较的是两个字符串的地址是否相等,切记! 若是比较两个字符,则可以用"=="直接进行比较 但比较两个string对象时是可以利用“==”的,相等的话,则表达式的返回值为1,不等为0。 如果用char数组来表示字符串,如char a[] = "aaa",b[]="aaa";,则a表示指向字符串的指针,所

2020-05-27 11:12:12 733

原创 【C++】STL标准容器的排序操作和选择合适的排序算法

转自:https://www.cnblogs.com/followyourdream/p/3316667.html#STL几乎封装了所有的数据结构中的算法,从链表到队列,从向量到堆栈,对hash到二叉树,从搜索到排序,从增加到删除......可以说,如果你理解了STL,你会发现你已不用拘泥于算法本身,从而站在巨人的肩膀上去考虑更高级的应用。排序是最广泛的算法之一,本文详细介绍了STL中不同排序算法的用法和区别。1 STL提供的Sort 算法STL提供的不同的函数,不同的函数,实现的算法又不尽

2020-05-26 20:34:08 1095

原创 【C++】什么是函数对象和函数对象的用处

class myprint{ public: void operator()(int num) { cout << "num " << num << endl; count++; } int count = 0;};void text2(int num){ cout << "num " << num << endl;}void te...

2020-05-26 16:21:53 5920 2

原创 【C++】C++ STL stack 用法

转自:https://www.cnblogs.com/magisk/p/9193351.htmlStack(栈)是一种后进先出的数据结构,也就是LIFO(last in first out) ,最后加入栈的元素将最先被取出来,在栈的同一端进行数据的插入与取出,这一段叫做“栈顶”。使用STL的stack需要include一个头文件<stack>构造template <class T, class Container = deque<T> > class st

2020-05-25 19:46:38 345

原创 【linux】进程间通信-消息队列

1、消息队列简介消息队列本质上是位于内核空间的链表,链表的每个节点都是一条消息。每一条消息都有自己的消息类型,消息类型用整数来表示,而且必须大于 0。每种类型的消息都被对应的链表所维护:图1 位于内核空间的消息队列.png其中数字 1 表示类型为 1 的消息,数字2、3、4 类似。彩色块表示消息数据,它们被挂在对应类型的链表上。值得注意的是,刚刚说过没有消息类型为 0 的消息,实际上,消息类型为 0 的链表记录了所有消息加入队列的顺序,其中红色箭头表示消息加入的顺序。2、..

2020-05-25 19:11:44 297

原创 【C++11】C++ 中using 的使用

博文1:用法一:using namespace 命名空间;该用法能直接在程序中使用using后所跟的命名空间的元素,而不用每次要使用时指定命名空间。using namespace std;//这样就可以直接用std命名空间里的元素了,如cout,string等,否则要指定命名空间,std::cout,std::string等。用法二:给某一类型定义别名,和typedef作用一样。using 类型别名=原类型;using uint=unsigned i..

2020-05-25 16:13:44 1146 1

原创 【mySQL】mySQL优化笔记|mySQL配置说明

转自:https://blog.csdn.net/ZHANG_TIMI/article/details/102717319[client]port = 3306socket = /tmp/mysql.sock[mysqld]port = 3306socket = /tmp/mysql.sockbasedir = /usr/local/mysqldatadir = /data/mysqlpid-file = /data/mysql/mysql.piduser = mys...

2020-05-21 15:47:52 1516 1

原创 【interview】遇到的困难

mySQL:1、中文乱码 (连接字符集、数据库字符集、表字符集、字段字符集)2、查询慢 (explain 分析索引有没有用上,是不是排序花了太长时间,innodb_buffer 增加提高缓冲命中率,查锁wait冲突数,大的事务拆分成小事务减少冲突,……)3、max_connections=2000 连接数不够了……...

2020-05-21 10:11:48 246

原创 【mySQL】提升mysql性能的关键参数之innodb_buffer_pool_size、innodb_buffer_pool_instances

转自:https://blog.csdn.net/qing_gee/article/details/42742241(作者太罗嗦了,复制好多遍)提升mysql性能的关键参数之innodb_buffer_pool_size、innodb_buffer_pool_instances。首先我们先看一下,我的电脑(i3-3220,4G内存,没有配置innodb_buffer_pool_size参数的情况下,抛开程序的性能,经过1个线程-8个线程的测试结果)环境下,大家可以看到如下的图,线程并发情况下,时间.

2020-05-19 16:02:11 886

原创 【mySQL】mysql是行级锁还是表级锁

一、概述数据库锁定机制简单来说,就是数据库为了保证数据的一致性,而使各种共享资源在被并发访问变得有序所设计的一种规则。对于任何一种数据库来说都需要有相应的锁定机制,所以MySQL自然也不能例外。MySQL数据库由于其自身架构的特点,存在多种数据存储引擎,每种存储引擎所针对的应用场景特点都不太一样,为了满足各自特定应用场景的需求,每种存储引擎的锁定机制都是为各自所面对的特定场景而优化设计,所以各存储引擎的锁定机制也有较大区别。MySQL各存储引擎使用了三种类型(级别)的锁定机制:表级锁定,行级锁定和...

2020-05-18 16:50:57 620

原创 【mySQL】比explain更加详细的分析计划:Query Profiler

比explain更加详细的分析计划:Query Profiler2019-05-10 14:47:45阅读:78来源:互联网标签:profileshowexplainsqlprofilesProfilerqueryQuery一、前言这篇博客是之前总结的一个知识点,也是偶然看别人博客的时候发现的这个东东,,也算是解析sql语句性能的利器吧,记录一哈。Query Profiler是MYSQL自带的一种query诊断分析工具,通过它可以分析出...

2020-05-17 19:20:26 409

原创 【知识】如何高效地在github上找开源项目学习?

视频:https://www.bilibili.com/video/BV1yJ411S7Wuhttps://www.cnblogs.com/studybrother/p/11972648.html1.高级条件组合(精确搜索)in:readme 微服务 stars:>1000in:readme spring security stars:>3000in:name python #在名字中包含python的项目in:name python ...

2020-05-17 00:55:56 1337

转载 【C/C++】内存和字符操作整理

目录内存清零memsetmemset:拷贝(3+2+2+1)memcpy:memmove:memccpy:strncpy:strcpy:strncat:strcat:strdup:查找:memchr:strchr:index:strrchr:rindex:strstr:strcspn:strspn:比较:memcmp:strcmp:strncasecmp:strcasecmp:...

2020-05-15 17:32:33 421

转载 【多线程】c++11多线程编程(五)——unique_lock和lock_guard

互斥锁保证了线程间的同步,但是却将并行操作变成了串行操作,这对性能有很大的影响,所以我们要尽可能的减小锁定的区域,也就是使用细粒度锁。这一点lock_guard做的不好,不够灵活,lock_guard只能保证在析构的时候执行解锁操作,lock_guard本身并没有提供加锁和解锁的接口,但是有些时候会有这种需求。看下面的例子。class LogFile { std::mutex _mu; ofstream f;public: LogFile() { f.op

2020-05-13 10:41:39 429

原创 【多线程】c++11多线程编程(六)——条件变量(Condition Variable)

互斥锁std::mutex是一种最常见的线程间同步的手段,但是在有些情况下不太高效。假设想实现一个简单的消费者生产者模型,一个线程往队列中放入数据,一个线程往队列中取数据,取数据前需要判断一下队列中确实有数据,由于这个队列是线程间共享的,所以,需要使用互斥锁进行保护,一个线程在往队列添加数据的时候,另一个线程不能取,反之亦然。用互斥锁实现如下:#include <iostream>#include <deque>#include <thread>#i.

2020-05-13 03:57:35 575

转载 【多线程】c++11多线程编程(四)——死锁(Dead Lock)

死锁如果你将某个mutex上锁了,却一直不释放,另一个线程访问该锁保护的资源的时候,就会发生死锁,这种情况下使用lock_guard可以保证析构的时候能够释放锁,然而,当一个操作需要使用两个互斥元的时候,仅仅使用lock_guard并不能保证不会发生死锁,如下面的例子:#include <iostream>#include <thread>#include <string>#include <mutex>#include <fst.

2020-05-13 03:18:01 339

原创 【多线程】c++11多线程编程(三)——竞争条件与互斥锁

竞争条件并发代码中最常见的错误之一就是竞争条件(race condition)。而其中最常见的就是数据竞争(data race),从整体上来看,所有线程之间共享数据的问题,都是修改数据导致的,如果所有的共享数据都是只读的,就不会发生问题。但是这是不可能的,大部分共享数据都是要被修改的。而c++中常见的cout就是一个共享资源,如果在多个线程同时执行cout,你会发发现很奇怪的问题:#include <iostream>#include <thread>#includ

2020-05-13 03:00:48 842

转载 【函数式编程】什么是函数式编程? C语言为何不是函数式语言?

什么是函数式编程? C语言为何不是函数式语言?函数式语言有两个个主要的特点:1. 函数是“头等公民”。2. 数据的“immutability”. 操作的“无副作用”,这规避了‘锁’。函数式编程的函数是指数学上的函数:给定输入固定的输出,没有副作用。任何语言都可以用函数式的风格,只是难易不同罢了。比如函数 y = f(x). 和 函数 t = g(z); 在数学上,当 t在f(x)的定义域内时,可以组成复合函数 y=f(g(z));对于第二个问题,C为何不是函数式语言?因为这种效果在C里面

2020-05-12 22:04:18 4296 2

原创 【多线程】c++11多线程编程(二)——理解线程类的构造函数

构造函数的参数std::thread类的构造函数是使用可变参数模板实现的,也就是说,可以传递任意个参数,第一个参数是线程的入口函数,而后面的若干个参数是该函数的参数。第一参数的类型并不是c语言中的函数指针(c语言传递函数都是使用函数指针),在c++11中,增加了可调用对象(Callable Objects)的概念,总的来说,可调用对象可以是以下几种情况:函数指针 重载了operator()运算符的类对象,即仿函数 lambda表达式(匿名函数) std::function函数指针示例

2020-05-12 21:42:55 494

转载 【C++11】C++11 中的std::function和std::bind

1. 可调用对象可调用对象有一下几种定义:是一个函数指针,参考 C++ 函数指针和函数类型; 是一个具有operator()成员函数的类的对象; 可被转换成函数指针的类对象; 一个类成员函数指针;C++中可调用对象的虽然都有一个比较统一的操作形式,但是定义方法五花八门,这样就导致使用统一的方式保存可调用对象或者传递可调用对象时,会十分繁琐。C++11中提供了std::function和std::bind统一了可调用对象的各种操作。不同类型可能具有相同的调用形式,如:// 普通.

2020-05-12 20:57:14 817

原创 【多线程】c++11多线程编程(一)——初识

什么是并发并发在生活中随处可见,边走路边说话,边听歌边写代码。计算机术语中的"并发",指的是在单个系统里同时执行多个独立的活动,而不是顺序的一个接一个的执行。对于单核CPU来说,在某个时刻只可能处理一个任务,但它却不是完全执行完一个任务再执行一个下一任务,而是一直在任务间切换,每个任务完成一点就去执行下一个任务,看起来就像任务在并行发生,虽然不是严格的同时执行多个任务,但是我们仍然称之为并发(concurrency)。真正的并发是在在多核CPU上,能够真正的同时执行多个任务,称为硬件并发(hardwar

2020-05-12 20:20:32 916

原创 【开发者手册】开发者手册

https://cloud.tencent.com/developer/doc/1023

2020-05-12 17:16:39 376

原创 [多线程]多线程编程需要注意的问题|多进程

可重入函数与不可重入函数保证函数的可重入性的方法:1)在写函数时候尽量使用局部变量(例如寄存器、堆栈中的变量);2)对于要使用的全局变量要加以保护(如采取关中断、信号量等互斥方法),这样构成的函数就一定是一个可重入的函数。满足下列条件的函数多数是不可重入(不安全)的:1)函数体内使用了静态的数据结构;2)函数体内调用了malloc() 或者 free() 函数;3)函数体内调用了标准 I/O 函数。如何将一个不可重入的函数改写成可重入函数呢?1)不要使用全局变量。因.

2020-05-12 10:37:50 1027

原创 【boost】Windows下VS2017下boost库安装配置

下载VS版本:2017Boost版本:1.67.0boost官网:https://www.boost.org/boost下载:https://www.boost.org/users/history/version_1_67_0.html下载版本:位置【1】:源代码,可以自己编译位置【2】:运行库,进入页面选择下载【boost_1_67_0-msvc-14.1-64.exe】,...

2020-05-07 16:36:14 1452

原创 [Django ]Django 的数据库操作

Django 的数据库操作有之前的基础,那么我们就可以开始对数据库进行操作。一、数据库配置配置 MySql在主目录的settings.py中修改Python 12345678910 DATABASES = { 'default': { 'ENGINE': 'django.db.backends....

2020-05-07 11:02:38 615

原创 【C++】4种强制类型转换|static_cast|dynamic_cast|reinterpret_cast|const_cast---编辑中

相关讨论贴:https://bbs.csdn.net/topics/392495146dynamic_cast 使用示例:// testCast.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include <iostream>#include <vector>using namespace std;c...

2020-05-04 12:01:52 447

原创 【系统】《写给大忙人看的操作系统》--研读

文章主要结构图操作系统现代计算机系统由一个或多个处理器、主存、打印机、键盘、鼠标、显示器、网络接口以及各种输入/输出设备构成。然而,程序员不会直接和这些硬件打交道,而且每位程序员不可能会掌握所有计算机系统的细节,这样我们就不用再编写代码了,所以在硬件的基础之上,计算机安装了一层软件,这层软件能够通过响应用户输入的指令达到控制硬件的效果,从而满足用户需求,这种软件称之...

2020-05-02 11:01:32 1439

CP丢包对带宽性能的影响分析(Analysing TCP performance when link experiencing

CP丢包对带宽性能的影响分析(Analysing TCP performance when link experiencing packet loss) CP丢包对带宽性能的影响分析(Analysing TCP performance when link experiencing packet loss) CP丢包对带宽性能的影响分析(Analysing TCP performance when link experiencing packet loss)

2023-11-26

librdmacm 源码

RDMA编程链接管理库 librdmacm 源码 https://github.com/ofiwg/librdmacm

2023-10-31

Argobots: A Lightweight Threading Framework for Massive Fine-Gra

Argobots: A Lightweight Threading Framework for Massive Fine-Gra

2023-09-30

mellanox RDMA MLNX-OFED Documentation Rev 5.7-1.0.2.0-11-15-2022

mellanox RDMA contact 5 网卡用户指导

2022-11-15

A Review of Lightweight Thread Approaches for High Performance

A Review of Lightweight Thread Approaches for High Performance ComputingA Review of Lightweight Thread Approaches for High Performance Computing

2022-09-18

数据通信-序列化协议 protocol json

数据通信-序列化协议 protocol json

2022-09-17

MQTT简介+安装+使用

MQTT简介+安装+使用

2022-09-16

DISTRIBUTED ASYNCHRONOUS OBJECT STORAGE (DAOS)

DISTRIBUTED ASYNCHRONOUS OBJECT STORAGE (DAOS) Distributed Asynchronous Object Storage

2022-09-10

宁美魔方小电脑 风扇驱动

宁美魔方小电脑 风扇驱动

2022-08-29

大文件切割FileSplitter+CoolFormat3.4+Sublime Text 3

大文件切割FileSplitter+CoolFormat3.4+Sublime Text 3

2022-08-17

DAOS_A_Scale-Out_High_Performance_Storage_Stack_fo.pdf

DAOS_A_Scale-Out_High_Performance_Storage_Stack_fo.pdf

2022-08-15

18--RPC18--RPC18--RPC18--RPC18--RPC18--RPC18--RPC18--RPC18--RPC1

18--RPC18--RPC18--RPC18--RPC18--RPC18--RPC18--RPC18--RPC18--RPC18--RPC18--RPC

2022-08-08

NUMA对单侧RDMA交互影响的性能评估-CR-SRDS-2020

NUMA对单侧RDMA交互影响的性能评估-CR-SRDS-2020

2022-02-12

RDMAvisor:在数据中心部署可扩展且简单的RDMA服务

RDMAvisor:在数据中心部署可扩展且简单的RDMA服务

2022-02-12

StarR:打破 RDMA 的可扩展性限制

StarR:打破 RDMA 的可扩展性限制

2022-02-12

基于可靠连接和高效资源共享的可扩展 RDMA RPC

Scalable RDMA RPC on Reliable Connection with Efficient Resource Sharing

2022-02-12

连接服务器失败(错误原因:Connection refused) error 111 抓包结果

连接服务器失败(错误原因:Connection refused) error 111 抓包结果

2022-01-25

perftest.tar.gz

perftest.tar.gz

2021-12-07

H3C 镜像地址 yum.repos.d.zip

H3C 镜像地址 yum.repos.d.zip

2021-12-07

keepspace.sh

判断磁盘空间占用超过阈值就删除掉最旧的,直到空间降到阈值以下

2021-10-29

Gcc编译选项-报错告警选项.rar

Gcc编译选项-报错告警选项.rar

2021-10-20

Ceph cmake编译管理.rar

Ceph cmake编译管理.rar

2021-10-20

Design_guideline_for_high_per_RDMA.pdf

Design_guideline_for_high_per_RDMA.pdf

2021-10-16

Accelarate_ceph_with_RDMA.pdf

Accelarate_ceph_with_RDMA.pdf

2021-10-16

intel E810 RDMA驱动安装

intel E810 RDMA驱动安装记录

2021-10-06

RDMA_RC_example.c

RDMA SEND/WRITE编程实例(IBV Verbs )

2021-09-27

linux火焰图实例.rar

linux火焰图实例.rar

2021-09-23

fio 使用说明书Release 3.27.pdf

fio 使用说明书Release 3.27.pdf

2021-09-18

删除文件只保留最新的n个文件的shell脚本

使用方法 deleteOldFile.sh folderpath n folderpath :文件所在文件夹路径 n: 保留多少个最新的文件

2021-09-08

get_rdma_info.sh

读取ibv_devinfo 参数内容的脚本

2021-09-03

修改SSH 为长连接脚本

SSH自动断开连接的原因和解决办法|SSH保持长连接方法

2021-09-01

get-rdma-device-info

获取intel or mellonx 的device name、ib_port、gid index 、mtu的脚本

2021-08-30

启用英特尔QuickAssist 技术 (QAT)NA-360_technical_announcement.pdf

英特尔 QuickAssist 技术 (QAT)相关应用和测试

2021-08-13

Redis+keepalived搭建教程和高可用测试

Redis+keepalived搭建教程和高可用测试

2021-08-01

esp32开发板esp-mesh wifi组网可行性文档分析.docx

esp32开发板esp-mesh wifi组网可行性文档分析

2021-08-01

esp32 linux开发环境搭建(cmake版本).docx

esp32 linux开发环境搭建(cmake版本)

2021-08-01

UWB室内定位系统整体解决方案介绍.docx

UWB室内定位系统整体解决方案

2021-08-01

树莓派4快速上手文档.docx

系统安装、配置和常用软件安装

2021-08-01

RDMA通信YH.zip

RDMA通信YH.zip

2021-07-12

英特尔 RDMA网卡脚本.rar

英特尔 RDMA网卡脚本.rar

2021-06-24

shell 脚本怎么删除 匹配字符之间的行?

2023-03-01

我写的IP转interface的shell脚本错哪里了呢?

2022-12-10

ifconfig 除了列出网口信息还有一堆不知道是什么?

2022-10-27

为什么程序能用getenv读到的环境变量我printenv打印不出来?

2022-09-23

find 后调用 -exec 执行多条语句的方法是?

2022-09-09

如何设置scons的环境变量?

2022-08-25

Gcc编译代码报错/usr/bin/ld: cannot find abt

2022-08-23

漏洞扫描工具trivy扫描镜像然后列出安全漏洞cve id的工作原理和流程是什么? trivy安全扫描的原理是什么?

2022-08-20

为什么popen没有执行里面的shell脚本?

2022-05-19

linux 的buff/cache有必要手动清除吗?

2021-12-06

linux怎么查看线程的父进程?

2021-10-26

C++11的allocator::construct如何构造多参数对象?

2021-09-25

C++11启动线程时怎么给线程分配名字?

2021-09-22

linux 的core file的时间戳怎么样才能变成日期格式

2018-02-26

关于protobuff,json等协议数据跨语言传输的一些问题

2017-11-09

servlet应该放在哪个文件夹?servlet-class的根目录是哪里?

2017-10-19

如何实现子Div的大小随着父Div的大小动态的改变而改变

2017-09-24

如何实现点击页面上的图片改变服务器上某个文件的JSON数据?

2017-08-07

pentaho,Kylin, Mondrian, Saiku之间到底是什么样的关系?

2017-07-16

Echart和WPF chart 比有什么优势吗?为什么Echart的JS库如此热门?

2017-06-22

shell函数内如何改变参数的值?类似于C语言一样参数指针传递

2017-05-21

shell怎么调用一个子脚本之后 让自己可以退出不必等子脚本

2017-05-20

linux 的core file的时间戳怎么样才能变成日期格式

2016-09-11

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

TA关注的人

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