- 博客(52)
- 资源 (17)
- 收藏
- 关注
原创 模板函数实例化学习
#include<iostream>#include <string.h>using namespace std;template <typename T, typename F>void Test(T t, F fun) { static int i = 0; i++; cout << fun(t) <<" "<<i<<endl;}double Double(double d){ return d
2020-05-24 16:02:58
286
原创 C++ 类变量初始化顺序
#include<iostream>using namespace std;class Base {public: Base(int a) : Ba(a) {}public: int Ba;};class Derived: public Base {public: int Db; int Dc; // 初始化的顺序和变量定义的顺序相同,依次初始化Ba,Db,Dc Derived(int b, int c) : Dc(c), Base(b), Db(Ba + Dc .
2020-05-20 22:44:34
251
原创 TSO/GSO/LRO/GRO测试
原文参考:http://blog.chinaunix.net/uid-20639775-id-3529535.html那么怎么知道是网卡帮协议栈做了这个杂活呢。实验测测,这里使用iperf做简单测试。TSO/GSO测试源主机发出大包,在半路截取看看数据波是否分片。从图中可以看到,原主机发出的是大包,但是中间设备抓到的是相对的小包。这里就是源主机的网卡把TCP大包被分成若干尺寸为...
2020-03-21 23:29:15
1267
1
原创 iperf部分参数学习
用过很多次iperf,但是对其中某些参数选项还不甚了解,今天特意下了代码看看某些项的含义。Usage: iperf [-s|-c host] [options] iperf [-h|--help] [-v|--version]Server or Client: -J, --json output in JSON formatClient sp...
2020-03-21 12:26:59
4295
1
原创 GDB断点学习(断点设置)
GDB是调试利器,在某些场景下,不确定是否好用,今天特意测试了在虚函数,内联函数,函数模板写的使用使用#include <iostream>using namespace std;class Base{public: virtual void test(){ cout << "i am base" << endl; }};class...
2020-03-12 23:26:44
3160
原创 C++ 类地址空间学习
#include <iostream>using std::cout;using std::endl;class Base1 {public: Base1() :a_(100) {} virtual void fun1() { cout << "Base1.fun1" << endl; } virtual void fun2() { cout ...
2020-03-01 20:47:34
379
原创 auto类型推导和类型打印
这里的代码参考了如下内容:effective modern c++https://stackoverflow.com/questions/81870/is-it-possible-to-print-a-variables-type-in-standard-c/56766138#56766138#include <iostream>#include <type_traits...
2020-02-22 23:36:03
2372
原创 C++格式化输出相关
#include <iostream>#include <iomanip>using namespace std;int main(){ cout << "格式化进制" << endl; long num = 1001; // 不同进制输出, 不支持二进制;八进制和十六进制目前仅支持正整数 cout << "dec: ...
2020-02-15 18:07:59
148
原创 c++继承学习
#include <iostream>using namespace std;class Base {public: virtual void fun() { cout << "I am base" << endl; }};class Derived :public Base {public: void fun() override { c...
2020-01-16 13:00:24
156
翻译 tcp_info说明
以下摘抄 Linux内核源码剖析-tcp/ip实现struct tcp_info { __u8 tcpi_state; //tcp state: TCP_SYN_SENT,TCP_SYN_RECV,TCP_FIN_WAIT1,TCP_CLOSE etc __u8 tcpi_ca_state; //congestion state: __u8 tcpi_retransmits...
2019-07-14 09:11:03
14609
2
原创 快速重传相关问题
1. 何时会触发快速重传一般而言,收到3个DACK后就会触发快速重传。当然这个3是经验值,具体可以查看RFC。通过sysctl查看和修改该值。下面是一个简单的实验,为了触发快速重传,实验中使用tc命令设置丢包率为1%。[root@bogon tmp]# sysctl -a | grep reorder net.ipv4.tcp_reordering = 3[root@bog...
2019-06-17 00:45:43
1034
原创 超时重传相关问题学习
注:内核版本4.14.119一、问题1. 超时重传的timeout设置和次数1.1 RTO设置超时重传RTO的值和rtt有关,即通过rtt可以计算出RTO。RTO的取值范围是[TCP_RTO_MIN(HZ/5), TCP_RTO_MAX(120HZ)],RTO的具体计算此处不展开。1.2重传次数1.2.1 三次握手的重传次数在三次握手时,重传次数时可以确定的。net.ipv4....
2019-06-09 17:53:47
815
1
原创 sk_send_head相关
sk_send_head: 指向sk_write_queue中第一个未发送的skb,如果sk_send_head为空,代表发送队列所有的报文已经发送。struct { //...... struct sk_buff *sk_send_head; struct sk_buff_head sk_write_queue; //......};关于该字段重要的变化,可以看...
2019-06-09 09:36:15
477
原创 tcp_metric的相关内容
1. tcp_metric的结构enum tcp_metric_index { TCP_METRIC_RTT, /* in ms units */ TCP_METRIC_RTTVAR, /* in ms units */ TCP_METRIC_SSTHRESH, TCP_METRIC_CWND, TCP_METRIC_REORDERING, TCP_METRIC_RTT_US, ...
2019-05-27 00:21:38
646
原创 nanolog入门学习
如何高效的写log, 目前GitHub有很多log的轮子,简单的测试了一下,发现nanolog是最快的(当然这个基本满足需求,所有就没有满足其他的)nanolog有两个版本.C++17的版本, 地址如下: https://github.com/PlatformLab/NanoLogC++11的版本, 地址如下: https://github.com/Iyengar111/NanoLog...
2019-04-15 11:24:41
6567
1
原创 进程绑定CPU核简单学习
把一个或多个进/线程绑定到不相关的cpu核中,可以有效的减少线程在多个cpu里头切换,仅能运行在绑定的cpu核中。那么cpu核被绑定后,是否意味着该核就只能被某个进程独占呢,显然是否定的。想想,如果4核的cpu,分4个不同的进程绑定了,那岂不是其他进程就无法运行了? 所有绑核仅仅是为了使进程在某个核中运行,而不是禁止其他进程使用该核。我们可以把多个进程绑定在同一个核中。当然,我们应该把消耗高的...
2019-04-11 23:52:12
1671
转载 Reentrant mutex(递归锁)
转载自: https://en.wikipedia.org/wiki/Reentrant_mutexIn computer science, the reentrant mutex (recursive mutex, recursive lock) is particular type of mutual exclusion (mutex) device that may be locked ...
2019-04-11 00:16:52
553
原创 gdb调试显示问号
软件在运行过程中出现了死锁。在另一个终端使用gdb attach命令去调试。在bt命令后,调用栈显示了好几个问号,函数的调用情况都莫名其妙。原因 gdb找不到软件自己的一些so文件路径,尤其so文件在几个不同的目录时候。解决方式行简单export LD_LIBRARY_PATH=xxxxgdb attach app_pid...
2019-04-10 17:04:37
5245
转载 VS2010编译关于winnt.h的错误
今天在编译一个以前写的程序时,发现如下的一个错误:1>ClCompile:1> stdafx.cpp1>c:\program files (x86)\microsoft sdks\windows\v7.0a\include\winnt.h(290): error C2146: 语法错误: 缺少“;”(在标识符“PVOID64”的前面)1>c:\program ...
2019-04-05 00:22:13
4571
1
翻译 Linux性能分析的若干工具
注意:文章仅仅是一个整理,知识的搬运。关于更多的信息,请参考相关工具的官网1、stress和stress-ngstress is a deliberately simple workload generator for POSIX systems. It imposes a configurable amount of CPU, memory, I/O, and disk stress on ...
2019-03-24 13:09:13
348
原创 centos7下python3.7.2的安装记录
下载 3.7.2解压安装python的依赖库(如果编译python过程中出错,很容易知道缺失什么库)yum install zlib-devel bzip2-devel openssl-devel ncurese-devel uuid libffi libffi-devel yum install tcl tcl-devel tk tk-devel默认情况下,编译出来的pyth...
2019-03-20 20:20:40
350
原创 beacon帧基础知识
1. beacon发送速率和模式在2.4G里,一般使用11g/1mpbs的模式发送beacon,兼容11b.在5G里,使用11a/6mbps的模式发送beacon,6bmps是11a的最低速率啦beacon的发送间隔一般为100ms,但是可以配置。2. beacon格式2.4G的beacon帧如下:5G的beacon帧如下:...
2019-03-18 23:24:49
10952
原创 boost库的thread_pool学习
一、boost库版本Version 1.69.0二、boost库安装下载源码boost_1_69_0.tar.bz2 解压安装: ./bootstrap.sh; ./b2 install三、牛刀小试#include <stdio.h>#include <string.h>#include <iostream>#include ...
2019-03-17 22:21:20
2208
翻译 无线常用短语
WPA: Wi-Fi Protected Access,有WPA和WPA2两种标准WDS: wireless distribution systemTDMA: 时分多址 time division multi addressVAP: 虚拟AP(access point),wifi芯片可以建立多组BSS ,供不同的客户访问。除了提供基本的网络给内部用户使用,还可以提供一个guest ne...
2019-03-15 23:17:45
605
原创 dlclose与线程的坑
当使用dlclose卸载某个so,但是so里头开了线程,必须把线程先退出,否则调用dlclose就会出现问题,会coredump
2018-12-14 17:42:25
2755
转载 【Database】转载--数据库连接池
以下内容转载自: 百度百科-数据库连接池数据库连接池负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个;释放空闲时间超过最大空闲时间的数据库连接来避免因为没有释放数据库连接而引起的数据库连接遗漏。这项技术能明显提高对数据库操作的性能。背景数据库连接是一种关键的、有限的、昂贵的资源,这一点在多用户的网页应用程序中体现得尤为突出。对数据库连接的管理能显著影...
2018-06-29 15:39:31
128
转载 【Database】redis事务-转自redis.cn
文章转自: http://www.redis.cn/topics/transactions.html-------------------------- MULTI 、 EXEC 、 DISCARD 和 WATCH 是 Redis 事务相关的命令。事务可以一次执行多个命令, 并且带有以下两个重要的保证:事务是一个单独的隔离操作:事务中的所有命令都会序列化、按顺序地执行。事务在执行的过程中,不...
2018-06-28 23:29:57
159
转载 【Database】Redis的初步学习
(1) Redis特点(2) Redis和其他数据库区别(3) Redis和其他数据库同步 既然redis只是一个缓存,那么持久化的工作还是交给其他数据库,以mysql为例。 写入数据时,先写入mysql,保证数据及时存储,然后在写到redis,读取数据时,先从redis读取,如果没有,在从mysql读取,顺便更新到redis。内存有限,如果redis里头数据太多了,那么必须更新啦,把...
2018-06-09 22:47:36
385
转载 NodeJs使用express
使用npm安装express之后,但是使用express会出现提示找不到的情况。解决方式:(1)添加环境变量NODE_PAHT,配置为node_modelus的路径(2)在系统变量的path里头添加 %NODE_PATH%...
2018-05-19 13:14:56
157
翻译 C++ std::function 模板类学习笔记
以下内容来自于: http://en.cppreference.com/w/cpp/utility/functional/function 对例子进行了相应修改,用于学习更多的细节Class template std::function is a general-purpose polymorphic function wrapper. Instances of std::function ca...
2018-05-13 15:39:57
3968
转载 关于First-class_function 的维基摘抄
摘自: https://en.wikipedia.org/wiki/First-class_functionIn computer science, a programming language is said to have first-class functions if it treats functions as first-class citizens. This means the l...
2018-05-12 10:35:09
371
转载 Linux下查看某个进程的线程数量
以下内容转载自: https://www.cnblogs.com/caosiyang/archive/2012/10/15/2724585.html1.根据进程号进行查询:# pstree -p 进程号# top -Hp 进程号2.根据进程名字进行查询:# pstree -p `ps -e | grep server | awk '{print $1}'`# pstree -p `ps -e |...
2018-04-27 12:20:18
4213
转载 constexpr specifier
转载自: constexpr specifierconstexpr - specifies that the value of a variable or function can appear in constant expressionsExplanationThe constexpr specifier declares that it is possible to evaluate the...
2018-04-05 18:16:59
637
原创 C++ bind 函数学习笔记
#include <iostream>#include <functional>#include <string>using namespace std;bool lenLargethanLen(const string &s, string::size_type sz){ return s.length() > sz;}in...
2018-04-01 22:58:22
572
转载 函数式编程初探
原文链接:http://www.ruanyifeng.com/blog/2012/04/functional_programming.html作者: 阮一峰日期: 2012年4月 6日诞生50多年之后,函数式编程(functional programming)开始获得越来越多的关注。不仅最古老的函数式语言Lisp重获青春,而且新的函数式语言层出不穷,比如Erlang、clojure、Scala、F...
2018-04-01 20:35:54
138
原创 lambda表达式学习
lambda表达式的基本形式,如下:[capture list] (params list) [key word: mutuble] ->return type { func body }说明:(1) [capture list]里面的内容具体形式如下:(2)params list 输入参数,这个和普通的函数一样(3)keyword:mutuble:默认情况下,lambda表达式不会改变一...
2018-04-01 16:21:52
553
原创 最大线程数的学习
测试系统:centos 64位首先提供测试程序,改写自linux程序设计的例子#include <stdio.h>#include <unistd.h>#include <stdlib.h>#include <string.h>#include <pthread.h>void *thread_function(void *ar...
2018-03-22 23:26:14
585
原创 陀罗输出
#include <iostream>#include <iomanip>using std::endl;using std::cout;using std::setw;void OutputTuoluo(const int kSize){ int *array_data = new int[kSize*kSize]; int right = kSize;...
2018-03-17 22:46:00
180
[计算机网络第五版]计算机网络第五版
2016-05-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人