- 博客(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
原创 [多线程]多线程编程需要注意的问题|多进程
可重入函数与不可重入函数保证函数的可重入性的方法: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
2023-11-26
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
2022-11-15
A Review of Lightweight Thread Approaches for High Performance
2022-09-18
DISTRIBUTED ASYNCHRONOUS OBJECT STORAGE (DAOS)
2022-09-10
大文件切割FileSplitter+CoolFormat3.4+Sublime Text 3
2022-08-17
DAOS_A_Scale-Out_High_Performance_Storage_Stack_fo.pdf
2022-08-15
18--RPC18--RPC18--RPC18--RPC18--RPC18--RPC18--RPC18--RPC18--RPC1
2022-08-08
基于可靠连接和高效资源共享的可扩展 RDMA RPC
2022-02-12
连接服务器失败(错误原因:Connection refused) error 111 抓包结果
2022-01-25
删除文件只保留最新的n个文件的shell脚本
2021-09-08
启用英特尔QuickAssist 技术 (QAT)NA-360_technical_announcement.pdf
2021-08-13
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
为什么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关注的人