9 Kun_Tsai

尚未进行身份认证

我要认证

暂无相关简介

等级
TA的排名 14w+

解决双蛋问题的C代码实现

看了李永乐老师讲解的双蛋问题,觉得很有趣,就按照视频里的思路自己实现一个吧。双蛋问题,实际题面为T层楼,N个蛋,最小扔多少次蛋一定能找出碎蛋的临界楼层?解题思路实为递归,这里就不多废文字了,有兴趣的也可以去B站av96214853观看李永乐老师的讲解该视频,更容易理解。直接上代码#include <stdio.h>#define FLOORS 2000#defi...

2020-03-18 01:56:17

SR-IOV虚拟出来的网卡如何被VPP(DPDK)接管

目录引言SR-IOV简介网卡支持配置步骤1. 修改Bios enable SR-IOV2. 修改启动参数3. 设置vf网卡mac地址,权限4. 切换网卡驱动5.启动VPP小结引言在只有一张网卡的情况下,这个网卡不能既被VPP(DPDK)接管,同时被操作系统所使用。这个时候一般只能通过创建虚拟机,在虚拟机中运行VPP(DPDK)接管virtio的虚拟...

2019-12-17 20:30:20

根据掩码位计算IPv6地址掩码

最近想一个问题如何快速判断IPv6地址是否为同网段?比如给定一个前缀prefix 和一个掩码位数mask_len, 那么一个IPv6地址与前缀怎么对比比较快呢。我大概想了一下,把mask_len变成mask, (IPv6 &mask) ^prefix == 0 ? 这种位操作的判断应该是比较快的。mask_len变成mask就要麻烦一点了,毕竟IPv6有16个字节,不像IP...

2019-11-26 01:31:30

谷歌负载均衡Maglev实现简析

目录简介LB工作流程Maglev内部架构控制器转发器转发器实现快速包处理免拷贝批处理简介参考资料:Maglev: A Fast and Reliable Software Network Load Balancerhttps://storage.googleapis.com/pub-tools-public-publication-data/pdf/44...

2019-07-26 18:47:12

有风阻的非自由落体的速度求解之路

目录问题的由来开启求助模式求助一 数学物理竞赛老师求助二 高中数学老师求助三 做轮胎的求助四 小学教师求助五刚考完研的大四小朋友求助六 前同事——得到正确答案结语问题的由来上周有一天和老婆大人讨论小孩平衡车的问题,说体重大的小孩下坡有优势,速度会更快。我感觉也是的,那为什么体重大的会更快呢,老婆说你看看他们比赛不就知道了。我说对,如果不考虑阻力肯定是一...

2019-04-19 01:40:47

NAT ALG PPTP实现简要分析

目录PPTP简介PPTP工作流程建立连接数据传输直接穿越NAT会有什么问题NAT44 NAT64NAT66NAT ALG PPTP实现方法1. NAT 设置一个 call-id pool2. 建立连接时3. 数据传输时结语PPTP简介PPTP全称Point to Point Tunneling Protocol,点对点隧道协议。本质...

2019-03-06 17:55:45

写一个简单的VPP插件

目录注册插件注册nodeNode处理packet主函数注册开关CLI文件位置运行测试源码在此总结分析通过VPP自带的例子和网上一些例子的参考,写了一个最简单的插件练习,插件功能:把hook到的包打印一下IP头。注册插件VLIB_PLUGIN_REGISTER () = { .version = CK_SAMPLE_PLUGIN_BUILD_VE...

2018-12-06 11:51:44

VPP基本操作练习

目录基本操作启动输入命令到vpp1开启vpp shell接口操作创建veth创建vpp接口设置vpp接口IPTrace数据包连接两个VPP实例查看ARP查看VPP路由表启动第二个VPP实例创建memif路由操作添加主机路由添加vpp2路由Trace PingSWITCHING重新启动两个VPP实例建立veth为vp...

2018-11-30 14:42:31

VPP编译调试环境安装步骤

 首先安装Centos 7, 用grub引导安装,不能用UEFI。否则在安装好VPP后报错IOPL call failed - cannot use virtio PMD然后DPDK就无法加载网卡了。参考源码如下:static voidrte_virtio_pmd_init(void){ if (rte_eal_iopl_init() != 0) { PMD_IN...

2018-11-27 22:56:48

如何体现timescaledb在insert过程中比原生PG的优势?

目录CASE-1 减少shared_buffer 从3GB到512MB。CASE-2, 4个索引,4并发,总共4亿行数据,监控PG实时写入速率CASE-3 改用HDD机械硬盘测试接上周一篇 timescaledb和PG写入性能测试 https://blog.csdn.net/jacicson1987/article/details/83064313经过1亿数据量的测试,并没有发...

2018-10-26 17:31:52

tdeforpg安装步骤

虚拟机已装有postgresql 9.6.9.设置环境变量为了方便安装,设置一下环境变量export PGSRC="/home/xdb/source/postgresql-9.6.9" //pg 源码export PGHOME="/appdb/xdb" //pg pathexport TDEHOME="/home/xdb/sou...

2018-10-26 14:52:33

PG copy&insert性能对比

目录 测试环境表结构CASE1结果CASE 2结果CASE 3结果TPS修正CASE 4结果结论测试环境Intel(R) Core(TM) i7-4790 CPU @ 3.60GHz32G memorySSD harddisk.postgresql.conf max_connections = 256 shared...

2018-10-25 18:23:59

PageAddItemExtended流程

学习PG写入数据,从PageAddItemExtended开始参考文章:https://www.jianshu.com/p/e86989dbda92源码位置:bufpage.c:190OffsetNumberPageAddItemExtended(Page page,                    Item item,                    Size s...

2018-10-17 16:46:04

timescaledb和PG写入性能测试

目录 结论摘要测试环境数据构造CASE 1 单TIME索引单行写入WAL文件增加BATCH写入资源占用CASE 2 增加一个索引单行写入BATCH写入资源占用CASE 3 大量数据结论摘要小数据量(线程10万行),无论单多线程,有无batch,PG和TSDB性能相仿,PG略强。增加一条索引,两者插入性能都有所下降WAL增长约为...

2018-10-15 22:31:19

timescaledb实现探究一(hook)

 void_planner_init(void){ prev_planner_hook = planner_hook; planner_hook = timescaledb_planner; prev_set_rel_pathlist_hook = set_rel_pathlist_hook; set_rel_pathlist_hook = timescaledb_set_rel...

2018-10-11 18:39:40

timescaledb和influxdb单行写入性能

目录测试结果摘要测试环境Influxdb单行写入测试测试结果资源占用timescaledb单行写入测试测试结果资源占用结果对比测试结果摘要单行写入性能,timescaledb超过influxdb的2倍。不论单线程还是多线程。更详细的结果请看后文。线程平均速率(行/s) 单线程 2线程 4线程 8线程 16线程 32...

2018-10-09 20:59:10

timescaledb源码安装

因为postgresql是源码安装的,所以timescaledb也得源码安装。timescaledb 0.12.1版本,解压后如下[root@server4 timescaledb-0.12.1]# lsbootstrap build CMakeLists.txt docs NOTICE scripts src timescaledb...

2018-10-08 17:31:54

PG fdw连接建立与关闭

PG本地启动psql, 并访问外部表,然后退出PG 与 remotePG的连接,随着客户端psql的退出而断开。 PG本地启动多个psql, 每个psql都访问一次外部表查看remotePG 进程postgres@ubuntu:~$ ps -ef|grep postroot 134 89 0 09:36 pts/0 00:00:00 su ...

2018-09-30 11:09:24

GO语言生成C动态库,再被链接成新动态库

目录目标测试代码编译步骤GO ----> 动态库再封装成新动态库编译生成可执行文件尝试GO---->C静态库---->C动态库。目标如果想把GO语言实现的功能集成到C固定接口上,中间需要多加一次封装。因为很难用GO直接封装已有实现,使得生产的动态库函数与目标接口一样的参数。GO语言生成的.h文件里函数的声明都是具有GO语言特性的变量类型。...

2018-09-29 12:27:33

C语言调用GO语言生成的C静态库

一开始看别人的例子,自己弄总是不成功,后来也是去GO语言社区看多几个例子,找找规律,才把几个自己没注意到的细(keng)节填起来了。GO语言写一个函数cktest.gopackage mainimport ( "C" "fmt")//export test1func test1(str string) { fmt.Print...

2018-09-28 16:17:05

查看更多

勋章 我的勋章
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。