go
文章平均质量分 76
senlin1202
这个作者很懒,什么都没留下…
展开
-
protobuf教程(一)---引入其他proto文件
是一种语言无关、平台无关的可扩展机制或者说是数据交换格式,用于序列化结构化数据。与 XML、JSON 相比,Protocol buffers 序列化后的码流更小、速度更快、操作更简单。proto";}—指定使用 proto3 语法proto”;—前一个参数用于指定生成文件的位置,后一个参数指定生成的 .go 文件的 package。这里指定的 out_path 并不是绝对路径,只是相对路径或者说只是路径的一部分,和 protoc 的--go_out拼接后才是完整的路径。也使用。转载 2022-12-01 13:24:37 · 3534 阅读 · 0 评论 -
Go-火焰图-pprof
正方形内部有一个相切的圆,它们的面积之比是π/4。火焰图的调用顺序从下到上,每个方块代表一个函数,它上面一层表示这个函数会调用哪些函数,方块的大小代表了占用 CPU 使用的长短。wrk 是一款针对 HTTP 协议的基准测试工具,它能够在单机多核 CPU 的条件下,使用系统自带的高性能 I/O 机制,如 epoll,kqueue 等,通过多线程和事件模式,对目标机器产生大量的负载。通过本文的讲解,你也了解到,开启后台程序的性能分析需要有请求,而不是静态的服务,本文使用的是压测来模拟大量的请求。转载 2022-08-20 13:59:50 · 1892 阅读 · 0 评论 -
go语言中return和defer的微妙关系(转)
疑问 前面在函数篇里介绍了Go语言的函数是支持多返回值的。 只要在函数体内,对返回值赋值,最后加上return就可以返回所有的返回值。 最近在写代码的时候经常遇到在return后,还要在defer里面做一些收尾工作,比如事务的提交或回滚。所以想弄清楚这个return和defer到底是什么关系,它们谁先谁后,对于最后返回值又有什么影响呢?动手验证 了解下来,问题比我想的要复杂,不信你先看看下面这段代码输出结果是啥 1 2 3 4 5转载 2021-12-30 10:14:41 · 233 阅读 · 0 评论 -
Go解析php-mem扩展写入的数据(序列化+zlib)
原因:工作中php使用mem,有直接jsonencode方式的写入,使用目前的mem插件就能很好的去读,但是php中可以直接写入mem一个数组类型,这种情况,php-mem扩展会先进行自身的序列化然后zlib存储到mem中,Go取出的数据,二进制使用binary解析出为乱码,问题进行解决找到一个git源How to read fastlz or zlib php compressed memcache key from go · GitHubpackage mainimport (转载 2021-12-03 20:08:08 · 206 阅读 · 0 评论 -
go语言的字节序(转)
小细节做了调整验证字节序(Byte Order)我们一般把字节(byte)看作是数据的最小单位。当然,其实一个字节中还包含8个bit (bit = binary digit)。 在一个32位的CPU中“字长”为32个bit,也就是4个byte。在这样的CPU中,总是以4字节对齐的方式来读取或写入内存, 那么同样这4个字节的数据是以什么顺序保存在内存中的呢?我们下面详细探讨一下。字节序包括:大端序和小端序,为什么要这么麻烦还要分门别类呢?举个例子,255用二进制表达就是1111 1111,再加1就转载 2021-12-03 19:50:50 · 918 阅读 · 0 评论 -
golang中net包用法
net包对于网络I/O提供了便携式接口,包括TCP/IP,UDP,域名解析以及Unix Socket。尽管net包提供了大量访问底层的接口,但是大多数情况下,客户端仅仅只需要最基本的接口,例如Dial,LIsten,Accepte以及分配的conn连接和listener接口。 crypto/tls包使用相同的接口以及类似的Dial和Listen函数。下面对net包进行具体分析。首先介绍其中常量:const ( IPv4len = 4 IPv6len = 16 )很容易看出这表示ip地转载 2021-11-30 15:11:07 · 1945 阅读 · 0 评论 -
go接口详解(转)
说明文章写的不错,个别语句写的有点问题,辩证的看吧go面向接口编程知识点接口定义与格式 隐式实现及实现条件 接口赋值 空接口 接口嵌套 类型断言 多态接口定义与格式接口(interface)是一种类型,用来定义行为(方法)。这句话有两个重点,类型和定义行为。首先解释定义行为:接口即一组方法定义的集合,定义了对象的一组行为,就是定义了一些函数,由具体的类型实例实现具体的方法。换句话说,一个接口就是定义(规范或约束),接口并不会实现这些方法,具体的实现由类实现,实现接口的类转载 2021-11-24 18:01:44 · 239 阅读 · 0 评论 -
go语言指针符号的*和&(转)
先放一段代码,人工运行一下,看看自己能做对几题?package mainimport "fmt"func main() { var a int = 1 var b *int = &a var c **int = &b var x int = *b fmt.Println("a = ",a) fmt.Println("&a = ",&a) fmt.Println("*&a = ",*&a)转载 2022-01-29 15:19:22 · 584 阅读 · 0 评论 -
如何打印Go对象的指针值? 指针值是什么意思?
How do I print the pointer value of a Go object? What does the pointer value mean?我只是在玩Go,还没有关于何时按值或按引用传递结构的良好心理模型。这可能是一个非常愚蠢的问题,但我只想尝试一下,看看我是否仍在处理同一对象,或者是否已对其进行了复制(按值传递)。有没有一种方法可以打印对象的指针(如果gc更改了指针值,则为内部ID)? 1 2 3 4 5 6 7 8转载 2021-11-19 11:59:40 · 2058 阅读 · 0 评论