自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(67)
  • 资源 (35)
  • 收藏
  • 关注

原创 go-micro 基于k8s做服务发现

文章目录欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入文章目录欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮

2021-08-25 14:41:40 844

原创 使用kubeadm 部署 k8s集群(ubuntu)

和其他语言不一样,汇编语言没有统一的编译器,汇编语言的格式随着编译的不同而不同,因此了解什么是汇编语言是学习汇编语言的第一道门槛。首先,我们需要知道汇编语言为什么出现,为了回答这个问题,我们就不得不聊一聊处理器指令。处理器指令: 在计算机内部,处理器基于芯片制造商内置于芯片内的二进制代码来处理数据,这些代码定义了处理器操作数据的行为。这些代码通常被叫做指令编码,不同的处理器,指令编...

2021-08-22 11:07:08 261

原创 代码质量的评价标准

如何评价代码质量代码质量的评价比较主观,一般会使用以下几个词汇:可读性、可扩展性、可维护性、灵活、优雅、可重用性、可测试性。这些是从不同方面来评价,但是各个维度都彼此关联,譬如可读性和可扩展性好,我们就说这段代码的可维护性比较好。代码质量的几个评价标准一般从可读性、可扩展性、可维护性、灵活、优雅、可重用性、可测试性几个方面来评价;其中可读性、可扩展性和可维护性是最常被提及的3个方面如何写出高质量的代码要写出高质量的代码,我们必须要掌握以下更加细化、更加能落地的编程方法论面向对象的设计思想设计

2021-03-06 15:43:25 1252

原创 设计模式开篇

个人心得时间如白马过隙,转眼工作已接近十年,每次代码review的时候,还是会被人挑出各种问题,总结下来主要有以下几个原因:平时对代码设计不够重视喜欢各种奇淫巧计学习过重构,设计模式但是都流于表面,不能深入其内涵,工作中还是以完成工作内容为目标,可能使用了一些简单的设计模式,但是不深入。代码的耦合、内聚性不佳,导致整体逻辑混乱代码的可测试性不好,喜欢进行整体功能的测试学习目标学习设计模式的四个原则,做到代码模块的可测试学习整个设计模式的脉络,深入理解各个设计模式的产生原因,适用场景

2021-03-06 09:46:55 81

原创 redis 对象

redis 对象定义redis的对象主要成员是类型和编码,这两个成员决定了数据在内存中的保存方式typedef struct redisObject { //对象类型 unsigned type:4; //对象编码 unsigned encoding:4; //LRU时间 unsigned lru:LRU_BITS; /* LRU time (relative to global lru_clock) or

2020-10-18 16:36:59 64

原创 redis压缩列表

压缩列表是列表和字典的底层实现压缩列表结构压缩列表字段说明属性类型用途zlbytesuint32_t整个压缩列表所占字节数zltailuint32_t记录最后节点距离压缩列表起始位置的字节数zllenuint16_t压缩列表中的元素个数entryX不定存储的元素zlenduint8_t特殊值(0xFF)压缩列表节点结构previous_engtry_length : 存储上一个元素的长度,有两个长度1个字节,如果上一个en

2020-10-17 21:10:25 102

原创 redis 整数集合

整数集合是redis集合的实现方式之一主要好处是灵活、节约内存空间整数集合类定义集合种存储的数据宽度是根据encoding来定义的,如果等于INTSET_ENC_INT16数据宽度为16位,INTSET_ENC_INT32是32位,INTSET_ENC_INT64是32位typedef struct intset { //编码方式 //主要有3种编码格式:INTSET_ENC_INT16、INTSET_ENC_INT32、INTSET_ENC_INT64 uint32_t encodin

2020-10-16 23:17:23 103

原创 redis 跳跃表

跳跃表可以看作时对有序链表的改进,我们知道对链表中元素查找的时间复杂度时O(n),但是,如果我们可以知道中间节点的大小,就可以判断元素实在链表的前半段还是后半段,然后在链表的前半段或者后半段去查找,通过这种思想,就可以把链表的时间复杂度降低到O(lgn)跳跃表就是借助这种思想,但是因为链表中的元素数随着插入元素和删除元素的减少,很难定位中位数在哪里,所以,跳跃表采用随机的方法来定义每个节点的层数。跳跃表类定义redis 中跳跃表主要有两个结构zskiplist和zskiplistNodezskipl

2020-10-15 23:53:59 222

原创 redis 字典

字典类图1、字典中保存一个函数表头列表,ht[0] 平时存储数据,ht[1]空闲,当rehash的时候ht[1]分配rehash的空间2、type中存储字典中的各种函数3、treashindex为-1,标示没有进行rehash,不为零标示rehash的进度redis 字典结构字典在一般情况下,只有ht[0]表有数据字典解决hash冲突的方法时开链法redis 字典rehashrehash的时机当字典没有执行BGSAVE或者BGREWRITEAOF的时候,哈希表的负载因子大于等于1当

2020-10-13 23:11:55 113

原创 redis 链表

redis链表结构如下#mermaid-svg-b4k1oDcfFVhafcB1 .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-b4k1oDcfFVhafcB1 .label text{fill:#333}#mermaid-svg-b4k1oDcfFVhafcB1 .node rect,#mermaid-sv

2020-10-11 23:12:07 71

原创 redis简单动态字符串

redis简单字符串的结构如下:#mermaid-svg-yxliJ7vJsuJHWrLK .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-yxliJ7vJsuJHWrLK .label text{fill:#333}#mermaid-svg-yxliJ7vJsuJHWrLK .node rect,#merma

2020-10-08 21:39:12 132 2

原创 http发展历史

HTTP的发展http是一种超文本的传输协议,规定了客户端和服务的交互规范。http/0.9只有GET方法只能传输纯文本http/1.0增加POST、HEAD等方法增加响应状态码引入协议版本号增加HEADER传输不再仅限于文本http/1.1增加PUT、DELETE方法增加缓存管理和控制明确了缓存管理、允许持久连接允许数据分块、利于大文件传输强制要求host头http/2.0二进制协议,不再要求纯文本可以发起多个请求,废除1.1里面的管道使用头部压缩允

2020-09-19 12:57:47 90

原创 第二章 8086/8088寻址和指令系统

文章目录2.1 8086/8088寄存器组cpu寄存器标志寄存器2.2 存储分段和地址的形成存储单元的地址和内容存储器的分段物理地址的形成段寄存器的引用8086/8088的寻址方式立即寻址方式寄存器寻址方式直接寻址方式寄存器间接寻址寄存器相对寻址基址加变址寻址相对基址加变址寻址8086/8088指令系统指令集说明数据传送指令堆栈操作指令标志操作指令加减法运算指令乘除法运算指令逻辑运算和移位指令转移指令2.1 8086/8088寄存器组cpu寄存器通用寄存器数据寄存器AXAHALB

2020-05-24 18:32:58 572

原创 AT&T汇编操作文件

文章目录相关的系统调用打开关闭文件向文件写入内容读取文件内存映射文件相关的系统调用系统调用系统调用值描述open5打开文件read3读取文件write4写入文件close6关闭文件打开关闭文件打开文件EAX 存储系统调用值EBX 存储文件名ECX 存储访问文件的权限c语言访问权限对应的数值O_...

2020-04-19 14:01:01 199

原创 编译器如何代码优化

文章目录优化编译器代码创建优化的代码优化的诀窍优化编译器代码GNU编译器的优化等级-O 基本的优化-fdefer-pop 默认方法返回时,会将输入参数出栈,这个优化可以将输入参数在栈上累计,并通过一个命令一次清空所有栈上数据-fmerge-constant 合并程序中相同的constant变量-fthread-jumps 使得编译器分析代码,可以跳过不必要的分支,直接到达最终的目...

2020-04-18 21:47:35 742

原创 创建可被c、c++调用的汇编库

文章目录创建汇编方法编译c和汇编程序在c程序中使用汇编方法在c++中使用汇编创建静态库使用动态库调试汇编方法创建汇编方法为了创建c语言可以使用的汇编方法,汇编方法必须遵循c语言的传值格式, 格式如下:program stackindirect addressingFunction paramter3 (16(%esp))Function paramter2...

2020-04-12 20:17:11 232

原创 AT&T内嵌汇编的格式

一般的内嵌汇编asm 格式asm(“assembly code”);示例asm(“movl $1, %eax\n\tmovl $0, %ebx\n\tint $0x80”);asm( “movl $1, %eax\n\t”“movl $0, %ebx\n\t”“int $0x80”);使用全局变量/* golbaltest.c - An example o...

2020-04-11 12:33:13 302

原创 AT&T汇编中的系统调用

linux内核内核组成内存管理/proc/meminfo 可以查看物理内存以及交换区大小ipcs -m 可以查看共享内存使用情况设备管理插入设备驱动代码将驱动代码编译进内核代码将驱动代码插入到运行的内核设备文件类型字节类型块类型网络类型文件系统管理文件类型文件系统描述affsAmiga 文件系统ext...

2020-04-05 13:34:08 377

原创 AT&T汇编函数的使用

汇编函数定义函数定义输入使用寄存器传值使用全局变量传值使用栈传值定义函数语法.type func1, @funcionfunc1: ... ret* 定义输出 * 将输出放在一个或几个寄存器 * 将输出放在一个全局变量* 创建函数 * 计算圆形面积的示例.type area, @functionarea: fldpi imull %...

2020-04-04 16:48:46 587

原创 go语言获得linux下网卡上行与下行流量

linux系统下/proc/net/dev存储网络设备的统计信息如上图所示:第一列: 网卡名第二列: 对应网卡接收字节数第九列: 对应网卡发送字节数通过以上信息,我们就可以计算出网卡的上行与下行的流量情况,代码实现如下:package mainimport ( "fmt" "io/ioutil" "strconv" "strings" "time"...

2020-04-02 19:09:01 1885 1

原创 AT&T汇编字符串

移动字符串MOVS 指令子指令MOVSB 移动一个字节MOVSW 移动两个字节MOVSL 移动4个字节说明默认源操作数在ESI,目的操作数在EDI设置EDI的地址movl $output, %edileal output, %edi示例# movstest.s - An example of the MOVS instructions.sect...

2020-04-01 22:40:11 419

原创 AT&T汇编中的高级数学方法

FPU环境FPU 寄存器栈8个80位的数据寄存器(R0~R7)特点不能通过名字访问寄存器是环形的16位的状态寄存器状态位状态位描述0不合法的操作1不规范化的操作2除数为0的异常3上溢出异常4下溢出异常5精度异常6栈错误7错误总体状态8状态码C09状态码C1...

2020-03-29 14:56:36 193

原创 AT&T汇编中的基本数学运算

整数运行加法加法指令add source, destination示例# addtest1.s - An example of the ADD instruction.section .datadata: .int 40.section .globl _start_start: nop movl $0, %eax movl $0, %ebx movl $0,...

2020-03-21 23:36:16 366

原创 AT&T汇编中的数字

数字类型无符号整数有符号整数二进制编码十进制压缩二进制编码十进制单精度浮点数双精度浮点数双扩展浮点数SIMD 扩展类型64位压缩整数128位压缩整数128位压缩单精度浮点数128位压缩双精度浮点数整数标准的整数大小ByteWordDoublewordQuadword无符号整数有符号整数# inttest.s - An example o...

2020-03-14 18:05:31 352

原创 AT&T汇编中的程序流程控制

指令指针无条件跳转Jumps格式jmp location分类short jump (offset less than 128 bytes)Near jumpFar jump (jump to another segment)示例#jumptest.s - An example of the jmp instruction.section .text.glob...

2020-03-12 23:42:03 132

原创 AT&T汇编移动数据

定义数据数据段.data 和 .rodata数据类型:* ascii 字符串* asciz 0结束的字符串* byte 字节值* double 双精度浮点数* float 单精度浮点数* int 32位整数* long 32位整数* octa 16位整数* quad 8位整数* short 16位整数* single 单精度浮点数示例:.section .data...

2020-03-08 21:37:27 221

原创 一个简单的AT&T汇编程序

程序的组成部分数据段(可选).section.data栈段(可选).section.bss文本段(必须).section.tex模板.section .data < 初始化数据>.section .bss <初始化数据>.section .text.globl _start_start: <指令代码>创建一个简单的程序CP...

2020-03-08 11:13:13 173

原创 汇编语言必备工具

开发工具汇编器MASMNASMGASHLA链接器调试器GNU汇编器(GAS)安装汇编器安装包(binutils)内容addr2line 将代码转换到文件名和行号ar 创建、修改和提取文件包as 将汇编代码转换成目标文件c++filter 过滤c++符号gprof 显示程序的基本信息ld 将目标文件链接成可执行文件nlmconv 将目标代码转换成网...

2020-03-08 00:05:18 1592

原创 IA-32平台

IA-32 平台核心部件处理器控制单元从内存中取指对指令解码从内存中取指令需要的数据存运算结果执行单元简单整数的运算复杂整数的运算浮点数运算寄存器普通寄存器(8个32位)EAX 存储算数加法的值和结果EBX 存储数据段中数据的指针ECX 字符串和循环的计算EDX I/O指针EDI 字符串操作的目的指针ESI 字符串操作的源指针ESP 栈...

2020-03-07 10:53:39 217

原创 汇编语言

和其他语言不一样,汇编语言没有统一的编译器,汇编语言的格式随着编译的不同而不同,因此了解什么是汇编语言是学习汇编语言的第一道门槛。首先,我们需要知道汇编语言为什么出现,为了回答这个问题,我们就不得不聊一聊处理器指令。处理器指令:在计算机内部,处理器基于芯片制造商内置于芯片内的二进制代码来处理数据,这些代码定义了处理器操作数据的行为。这些代码通常被叫做指令编码,不同的处理器,指令编码也一般...

2020-03-01 13:58:43 371

原创 二分查找的应用

二分查找是一种很有效率的查找方式,每次查找后余下的区间是指数级递减的。二分查找的限制也很明显,就是数据必须是拍过序的。首先我们来看通过二分查找的方式来计算一个数的平方根def mySqrt(n: int, left: int, right: int, bit_num: float): mid = left + (right - left)/2 if abs(n - m...

2019-12-10 18:57:34 116

原创 跳表的实现

跳表是一种查找效率可以和红黑树媲美的算法,而且实现简单,适合需要范围查找的场景。跳表是在链表的基础上实现的结构,主要思想是同过建立多层索引的方法来提高查找效率。跳表的实现精髓是通过多级索引指针,因此数据域有一个存储数据的节点和一个索引指针数组,如下:class Node(object): def __init__(self, data: int, level: int): ...

2019-12-10 18:29:19 113

原创 一、常用的一些算法

最近重新学习一下数据结构与算法,同时也学习一下python,就用python来实现一些常见的算法。工欲善其事,必先利其器,先用python实现一些数据生成与数据校验的方法。#生成随机数组def buildArr( num, min_value, max_value): return_arr = [] for i in range(0, num): retur...

2019-11-29 13:30:26 94

原创 linux 程序异常调试方法

在开发环境可能没有gdb或者不方便进行线上调试,可以使用gcore生成core文件,拷回本机进行调试,命令如下:gcore pid 生成core文件top -d 1 查看进程状态然后按H 查看问题线程strace -p pid/tid 查看进程或线程的系统调用Dlv core <exe> <core> 调试进程状态gdb <exe&...

2019-11-19 15:16:13 301

原创 计算最长升序子串

func MaxWordString(testArr []int32) int { //存储生序串 resultMap := make(map[int32][]int32) for _, value := range testArr { //第一个数据加入结果序列 if len(resultMap) == 0 { curValueArr := make([]int32, 0...

2019-11-14 19:43:40 297

原创 go语言-数独求解

package mainimport ( "container/list" "fmt")var ( ROWCOUNT = 9)//每一步的数据type stepData struct { x int y int data []int backup int}//获得数组的行列数据func getRowColData(info [][]int, ...

2019-10-24 22:41:58 251

原创 模板方法模式

提供算法的基本骨架,具体实现延迟到调用public abstract class BankTemplate {//模板方法 protected void before(){ System.out.println("get num"); } protected abstract void transcate(); protected void end() { Syst...

2019-08-01 17:35:31 101 1

原创 gprc

1、执行 go get google.golang.org/grpc 报错解决办法:1.cd到GOPATH下执行git clone https://github.com/grpc/grpc-go grpc2.然后根据报错clone相应的缺少的库: git clone https://github.com/golang/net.git $GOPATH/src/golang....

2019-08-01 17:34:43 343

原创 go 反向代理

对go语言的反向代理还不是很熟悉,先把相关代码记录下来。proxy.gopackage mainimport ( "context" "errors" "fmt" "net" "net/http" "net/http/httputil" "strings" "sync" "sync/atomic" "time")type Transport struct {...

2019-07-30 10:46:15 237

原创 外观模式

为了隐藏内部实现细节,简化外部操作public class Register {//外观类 public boolean register(){ return new CheckUser().check() && new CheckPass().check(); }}class CheckUser{//内部类 public boolean check() {...

2019-06-18 08:31:19 66

odbc 数据库批量插入操作

使用odbc批量插入10W条数据,与update作对比,速度明显提升,将近10倍。

2017-03-02

visual assist new

visual assist 10.9.2118 crack

2017-03-02

c++证书安装

c++实现证书的下载,安装以及合法性检查

2017-02-23

html启动本地应用

双击文件夹中的exe文件,注册自定义协议,可以通过prefix.ini配置文件变更相关注册数据,然后用用浏览器打开test.html测试运行,附c++源码。

2017-01-10

visual assist

一分下的,方便自己和大家

2017-01-10

自动升级工具

c++自动升级工具源码类

2016-10-12

inno 打包模板

inno打包模板,卸载时检查进程是否存在,存在提示;安装时检查是否安装了程序,安装了则运行卸载程序。

2016-10-11

inno 打包工具

打包工具

2016-09-29

一些压缩算法

一个压缩算法

2016-09-26

基础压缩算法

压缩算法 lz77 rice

2016-09-26

一个不错的打包工具

打包工具

2016-09-21

仿酷狗音乐播放器

仿酷狗音乐播放器

2016-09-19

导出一个对话框并使用钩子获得鼠标消息

导出一个对话框并使用钩子获得鼠标消息

2016-09-01

一个文档的左右停靠

一个窗体的停靠

2016-08-23

实现一个窗体停靠

实现一个窗体的停靠

2016-08-23

nodejs文件传输

使用nodejs的c++扩展实现p2p文件传输

2016-08-12

wsaEventSelect事件选择模型

wsaEventSelect实现p2p的文件传输

2016-08-12

多线程代码

一个多线程的cpp代码统计工具,在win10+vs2010上实现,可以在cmd窗口中输入类似“Codestatistics.exe c:”的命令运行,运行结果显示在控制上。工程分两个主要模块,多线程递归所以当前目录下的所有cpp文件,之后进行代码统计。

2016-08-03

一个操作系统的实现

操作系统的实现 pdf清晰版 ,包含源码,非常不错的资源。

2019-02-23

一个简单的无锁栈实现

一个简单的无锁栈, 使用原子操作,简单的资源回收。指针赋值使用compare_exchange_weak

2018-07-31

使用outlook接口自动发邮件

使用outlook的com接口发送邮件。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

2018-05-15

c++读取pe文件

读取32位pe文件节表,导入表,导出表。。。。。。。。。。。。。。。。。

2018-03-09

http 服务器

基于libevent的httpserver,默认绑定8080端口,实现get,post,上传下载文件,压缩文件夹

2018-03-06

vc运行时库

比较全的vc运行时库。。。。。。。。。。。。。。。。

2018-03-02

c++文件压缩

压缩解压文件夹。。。。。。。。。。。。。。。。。。。。。。。。。。

2018-03-02

duilib对话框

一个基于duilib的对话框,主要用到了树和tab页面。。。。。。。。。。。。。

2018-02-27

远程桌面客户端服务器端

远程桌面客户端与服务器端

2017-08-11

md5的c++实现

c++的md5实现

2017-08-09

websocket代码

一个简单的websocket

2017-08-03

帧间差分法和三帧差分法法

用帧间差分法和三帧差分法法提取运动目标

2017-07-14

duilib 操作excel

mfc 读取excel数据,并显示,根据本地文件data.json里面的值,判断表达式是否成立

2017-06-08

windows向指定进程界面发送键盘消息

windows向指定进程界面发送键盘消息,支持组合键,使用方法类似:sendkey::SendPressKey("iexplore.exe", "", "CTRL+T+CTRL+A+www.baidu.com+ENTER", true)

2017-06-08

后缀表达式求解

一个简单的后缀表达式求解问题

2017-06-06

Foxit Reader

不用安装绿色阅读

2017-03-31

openTLD算法

TLD(Tracking-Learning-Detection)是英国萨里大学的一个捷克籍博士生在其攻读博士学位期间提出的一种新的单目标长时间(long term tracking)跟踪算法。该算法与传统跟踪算法的显著区别在于将传统的跟踪算法和传统的检测算法相结合来解决被跟踪目标在被跟踪过程中发生的形变、部分遮挡等问题。同时,通过一种改进的在线学习机制不断更新跟踪模块的“显著特征点”和检测模块的目标模型及相关参数,从而使得跟踪效果更加稳定、鲁棒、可靠。

2017-03-23

空空如也

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

TA关注的人

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