自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Yaixihn

不回头

  • 博客(38)
  • 收藏
  • 关注

原创 内存四区模型

计算机内存的四区

2022-05-18 20:45:52 167

原创 数据结构—红黑树和二叉搜索树

红黑树与二叉搜索树

2022-05-09 14:29:47 459

原创 ProtoBuf—编码原理

protobuf编码原理protobuf将协议缓冲区消息(message)编译压缩成二进制格式的文件。当消息被编码时,键和值被连接成一个字节流,tag-value。protobuf中message是一系列键值对,message的二进制版本只是使用字段号(field`s number和wire_type)作为key,key的后3位位表示的是wire_type。每个字段的名称和声明类型只能在解码端通过引用消息类型的定义。如果没有数据结构描述.proto文件,拿到数据以后是无法解释成正常数据结构的。

2022-05-04 19:09:35 1174 1

原创 ProtoBuf—安装

2022-05-04 18:55:47 114

原创 Protobuf—简介,优缺点

protobuf 是Google旗下的一款平台无关、语言无关,可扩展的序列化结构数据格式。所以很适合用做数据存储和作为不同应用、不同语言之间相互通信的数据交换格式,只要实现相同的协议格式的统一proto文件,就可以被编译程不同语言版本,从而加入各自的工程中。这样不同语言之间可以解析其它语言通过protobuf序列化的数据。目前protobuf官网提供了C++,C#,Dart,GO,JAVA,Kotlin,Python等语言支持。Google在2008年7月7号将其作为开源项目对外公布。1. ProtoB

2022-05-04 17:01:26 2430

原创 gRPC流数据传输

stream的实现其实和service一样是接口;1. 普通服务,5小节就是此部分的实现.proto文件:rpc 方法名(变量类型)returns(变量类型){}服务器:func(grpc服务端结构体)方法名(ctx,入参类型指针)回参类型指针,error{}客户端:返回值,错误 = 创建好的grpc客户端连接.方法名(ctx,入参)2. 流式传入,返回是普通的(客户端流传入,服务端普通返回).proto文件:rpc 方法名(stream 变量类型)returns(变量类型){}

2022-04-22 21:26:42 1006 1

原创 GO语言学习笔记之select

go语言中select的用法

2022-04-21 16:11:15 113

原创 GO语言学习笔记之channel

channel定义:channel是Go语言中的一个核心数据类型,可以将它看为管道或队列(FIFO)。并发核心单元通过它就可以发送或者接受数据进行通讯,这在一定程度上又进一步降低了编程的难度。目的:主要用来解决go程的同步问题以及协程之间的数据共享的问题。goroutine运行在相同的地址空间,因此访问共享内存必须做好同步。goroutine奉行通过通信来共享内存,而不是共享内存来通信。引用类型channel可用于多个goroutine通信,其内部实现了同步,确保并发安全创建cha

2022-04-20 16:29:26 963

原创 GO语言学习笔记之协程

1. 协程定义:coroutine,也叫轻量级线程。协程并发为为了提高程序执行的效率,线程阻塞期间去执行其它指令,并不一直等待。完成并发的方法:进程并发->稳定性强线程并发->节省资源协程并发->效率高2. Goroutine:go程创建于进程中,直接使用go关键字,放置于函数调用前面,产生一个Go程。特性:主go程结束,子go程也随之消失。函数runtime.Gosched():出让当前go程所占用的cpu时间片,当再次获得CPU,从出让位置继续恢复执

2022-04-20 16:28:27 95

原创 GO语言学习笔记之并发

1. 并发并行(parallel): 指在同一时刻,有多条指令在多个处理器上同时执行;借助多核CPU实现。真并行并发(concurrency):指在用以时刻,只有有一条指令执行,但多个进程指令被快速轮换执行,是的在宏观上具有多个进程同时执行的效果,但在微观上并不是同时执行的,只是把时间分成若干段,通过CPU时间片轮转使多个进程快速交替的执行。假并行eg:并行是两个队列同时使用两台咖啡机;并发是两个队列交替使用同一台咖啡机。由于并行是物理层面的技术,我们之研究并发。2. 进程与线程进

2022-04-20 16:27:24 130

原创 Go语言学习笔记之基本概念——文件的操作

文件的打开,读写操作打开和创建创建:os.Create(文件路径),如果路径下没有则创建,如果存在,则清除所有信息;打开f,err := os.Open(文件路径),只读权限,返回file指针;文件不存在,打开失败;f,_ := os.OpenFile(文件路径,读写模式,权限),以只读,只写,读写方式打开文件,文件不存在,则打开失败;也可以用来打开目录;参数1:表示文件路径,可以使用相对路径或绝对路径;参数2:表示读写模式,常见的有:O_RDONLY(),O_WR

2022-04-13 15:51:44 269

原创 Go语言学习笔记之基础概念——结构体

结构体结构体是一种数据类型,type Person struct{​ name string​ sex byte​ age int}初始化:顺序初始化:依次将结构体内部所有成员初始化,eg: var man Person = Person{"July",'m',33}指定成员初始化:未初始化的成员变量,取该数据类型对应的默认值。eg: man : = Person{name:"July",age:33}使用:使用“ . ”

2022-04-13 15:50:07 848

原创 Go语言学习笔记之基础概念——map

mapkey是唯一的,且key不能是引用类型;切片、函数以及包含切片的结构体类型由于具有引用语义,不能作为映射的键。使用这些键会造成编译错误。map是无序的,所以每次打印顺序可能不同;map不能使用cap(),自动扩容;删除map,delete(待删除的map,删除key),map传参为传引用;...

2022-04-13 15:48:51 83

原创 Go语言学习笔记之基础概念——切片

为什么要用切片?数组容量固定,不能自动扩展;值传递,数组作为函数传参的时候,将整个数据值拷贝一份给形参。切片本质:不是一个数组的指针,是一种数据结构,用来操作数组内部元素。切片名[low,high,max]->low:起始下标位置;high:结束下标位置;len:high-low;cap:max-low。创建切片:make([]type,len,cap);*make([]type,len)*;自动推导类型创建切片;注:make函数只能创建slice,map和channel,并..

2022-04-13 15:47:14 563

原创 Go语言学习笔记之基础概念——栈帧

stack默认分配空间是1M,最大可以实现8M;heap默认分配1G,所以我们认为对空间是无限的,但也要申请完释放。栈使用完之后就会进行释放,但是堆不会。给函数运行提供内存空间,从stack中来,并且在stack上产生内存。当函数调用时,产生栈帧;函数调用结束,释放栈帧;栈帧连续分配内存栈帧存储:局部变量、形参、内存字段描述值(栈基指针,栈顶指针)全局变量存储在数据区的read only,并且随.bss加载到内存,并默认初始化左值是变量的内存空间,左值是写操作;右值是变量内存空间存储的数据值,右.

2022-04-13 15:45:19 110

原创 Go语言学习笔记之基本概念—指针

指针就是地址,指针变量就是存储地址的变量。 使用”%q"打印go语言带双引号的字符串,可以显示出空结果;%s与Println一样的结果指针使用注意:空指针:未初始化的指针。var p *int野指针:用一片无效的地址空间来初始化指针初始化:使用new(type)函数初始化,默认为类型的默认值,在heap上申请一段空间;使用&取地址运算符;指针传参:值传递传引用:将地址值作为函数参数,返回值传递。传值:将实参的值拷贝一份给形参。*p是解引用,或者称为间接引用 ,.

2022-04-13 15:43:37 246

原创 go语言scanner

原博客

2022-03-02 14:16:45 377

原创 slice存的是指针

slice存的是指针地址,如果要实现对参数的同步改变,需要指针传参

2022-02-28 15:57:25 257

原创 windows换机经验分享

换新机前的准备把重要资料拷贝复制一份;前题是知道重要资料的文件位置,并一一整合起来。因此建议平时就养成良好的存储习惯,建立一个有自己独特标识的文件夹,将所有重要的资料均存储在该文件夹下,如果可能的话,平时安装新软件的时候,就把相应的软件安装包放在一个文件夹下;之后是将所需软件的安装包都提前下载到一个文件夹中,如果平时就有如此良好的习惯再高效不过了;对浏览器书签的备份,导出一份书签目录;如果是微软浏览器或者谷歌浏览器,一定一定要多同步几次;如果所用浏览器有插件,请将插件的源文件进行拷贝复制,因为新

2021-10-14 22:35:43 995

原创 keras中的concatenate()

实例:from keras import backend as Kimport tensorflow as tfimport numpy as npa = K.variable(np.array([[[1,2],[3,4],[5,6],[7,8]]]))b = K.variable(np.array([[[11,12],[13,14],[15,16],[17,18]]]))c1 = K.concatenate([a,b],axis=0)c2 = K.concatenate([a,b],axis

2021-10-03 15:57:54 414

原创 tensorflow报错:ModuleNotFoundError: No module named ‘tensorflow.python.eager‘

报错:ModuleNotFoundError: No module named ‘tensorflow.python.eager‘原因分析:keras和tensorflow的版本不匹配解决办法:改变keras或tensorflow的版本号,使两者相互匹配,比如:原tensorflow 的版本是1.2.1,keras的原版本号是2.3.1;可以将keras的版本号改为2.1.2,这样就可以实现匹配具体步骤:先卸载kerasconda uninstall keras -y再安装相对于的版本c

2021-10-03 15:53:44 1462 1

原创 vgg19图像风格迁移遇到的问题

vgg19图像风格迁移遇到的错误:module 'scipy.misc' has no attribute 'imread'module 'scipy.misc' has no attribute 'imresize'原因分析安装的scipy版本太高,转为1.2.1版本的就可以正常使用了。故而可以通过重新安装指定版本的scipy来解决问题解决办法:import imageio这个包中包含imread和Imwrite,imsave,将之前的scipy.misc.imread()改成imag

2021-09-27 16:28:30 355

原创 pip因网络延迟导致安装失败的解决办法

pip下载报错错误提示:ERROR:Exception:Traceback(most recent call last)原因分析以及解决办法:下载待安装的软件版本过高;可通过指定低版本的版本号下载;下载源地址发生网络延迟导致下载失败;可通过更改指定国内下载源地址来下载...

2021-09-23 11:13:35 158

原创 github_push出错

github push出错执行 git push -u origin master错误提示:ssh: Could not resolve hostname github.com: No address associated with hostname fatal: Could not read from remote repository.原因分析错误提示中提到是ssh的错误,不能从远程仓库中获取,无法解析hostname git;故有理由判断是SSH失效,所以尝试重新配置ssh解决过程g

2021-09-15 10:37:07 68

原创 ElasticSearch搜索代码解析

MDAGNode结点结构图1:![image.png](https://img-blog.csdnimg.cn/img_convert/4a1ff95c5544eb3a46918a828be5247f.png#clientId=ue12c29a2-e5b2-4&from=paste&height=513&id=u2cf5a30c&margin=[object Object]&name=image.png&originHeight=599&origin

2021-07-27 16:44:34 201

原创 《CLP: Efficient and Scalable Search on Compressed Text Logs》论文概括

CLP:压缩文本日志上进行高效和可扩展的压缩一、问题定义:本文介绍了CLP的设计和实现,CLP是一个能够无损压缩非结构化文本日志的工具,同时能够直接在压缩的数据上进行快速搜索。CLP是一个完整的端到端系统,用于读取、归档、搜索和分析日志信息;要满足以下目标:首先,日志是无损压缩的,用户可以删除原始日志,而且不用担心会对其进行破坏性的改变(例如,通过改变浮点值的精度)。第二,用户能够搜索他们的日志中的任何数值,这与基于索引的搜索不同,后者通常只允许搜索索引的数值。最后,CLP应该是高性能和可扩展的,用

2021-07-27 16:34:23 745 1

原创 markdown帮助文档

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

2021-06-01 21:24:59 165

原创 Centos服务器配置历程

2019-10-16 08:26:30 79

原创 IDEA的安装与配置

2019-10-16 08:21:45 123

原创 GitHub上用gitbash发布项目完整步骤

2019-10-16 08:19:42 99

原创 Java中多线程的相关内容

相关的优秀文章链接:01.可见性、原子性和有序性问题:并发编程bug的源头02.Java内存模型:看Java如何解决可见性和有序性问题03.互斥锁(上):解决原子性问题04.互斥锁(下):如何用一把锁保护多个资源05.一不小心就死锁了,怎么办06.用“等待-通知”机制优化循环等待07.安全性,活跃性以及性能问题08.管程:并发编程的万能钥匙09.Java线程(上):Java线程...

2019-10-16 08:16:30 152

原创 Java连接MySQL数据库

2019-10-16 08:10:39 72

原创 字符流和字节流

2019-10-16 08:09:04 77

原创 String 和 Date

2019-10-16 08:07:29 68

原创 Java中集合

2019-10-15 21:32:40 87

原创 Java面对对象

2019-10-15 21:31:22 56

原创 Java命名规范、八大基本数据类型以及基本流程控制语句

一、命名规范1.范围:0-9数字、26个英文字母和_$,其余的所有符号均不可以。注:(1)不能以数字开头;(2)不能使用关键字;最好不要使用中文命名,即使可以编译通过。2.命名项目:与项目相关的名字,尽量做到见名思意。使用英文命名,首字母大写。3.命名类和接口:见名思意,首字母大写。4.命名包:全部小写。5.命名函数和变量:首单词小写,从第二个单词开始首字母大写。6.命名常量:全...

2019-10-15 20:57:23 193

原创 Java、JDK、JRE和JVM的关系

Java、JDK、JRE和JVM的含义|Java|一种新型轻量级计算机语言||JDK|java development kit ->java开发工具包 ||JRE|java running environment ->java运行环境||JVM |java virtual machine ->Java虚拟机 |Java、JDK、JRE和JVM的关系图示...

2019-10-15 20:26:53 368

空空如也

空空如也

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

TA关注的人

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