有趣
主页
归档
链接 icon
豆瓣读书
关于
🌐
English Chinese
  • golang testing 使用教程

    Sep 27, 2020 · 2 min read · go test testing

    单测是提高代码质量的重要一环,在提交代码尤其是开源社区单测一般是必需要随代码一起提交的,下面我们来看一下Golang中是如何写单元测试的。 Go中提供了专门用来写单元测试的包 testing, 运行时只需要 go test 即可。 单元测试主要分为以下三类: 功能测试(Test) 性能测试(Benchmark) 示例测试(Example) 测试文件名称一般是源代码文件加上 "_test.go", 比如 源代码文件为 add.go ,则测试文件名称为add_test.go。 在展开单元测试之前先讲下,testing包中的输出函数: t.Log() : 正常日志输出; t.Errorf(): 错误日志输出,当前函数继 …

    阅读更多
  • golang 协程调度原理

    Aug 11, 2019 · 2 min read · go sched

    Go语言 最大的特点是提供简单易用的并发编程,这个并发的执行单元就是goroutine, 这个goroutine 是运行在用户态,并由GO自身来调度。调度器来决定谁来使用CPU资源,谁该让出CPU资源。 本文就来深入探讨一下Go的调度原理。 GMP调度模型 Go采用的是GMP调度模型。 核心概念 G :即Goroutine ,使用关键字 go 即可创建一个协程来处理用户程序,如下所示: 1 go func() //创建协程来执行函数 M :Machine 系统抽象的线程,代表真正的机器资源,目前最多10000,超过这个数量会panic. P :Process,虚拟处理器,代表goroutine的上下文,用于关联G和M;P的数量可以通 …

    阅读更多
  • 通过 hello world 寻找 golang 启动过程

    Jun 20, 2019 · 3 min read · go start

    知其然,也要知其所以然,从今天开始研究一下golang的底层实现,首先从其启动开始; 找到启动点 1. 写一个hello world. 1package main 2 3import ( 4 "fmt" 5) 6 7func main() { 8 fmt.Println("hello world") 9} 2.编译后使用gdb找到entry point 1$ gdb hello 2 ..... 3 file type mach-o-x86-64. 4 Entry point: 0x1052720 5 0x0000000001001000 - 0x0000000001093074 is .text 6 …

    阅读更多
  • golang 栈结构

    Jun 15, 2019 · 3 min read · go stack

    程序组成 程序由代码和数据组成,数据又有静态与动态之分; 动态数据:存放在堆区和栈区; 静态数据:静态只读数据可以放在代码区,也可以放在特定的只读数据区; 可读写的已初始化的静态数据放在数据区,可读写的未初始化的静态数据放在bss区; 寄存器 伪寄存器 FP(Frame pointer): 表示参数以及返回值的基地址; 通过 SYMBOL+/-ffset(FP) PC(Program counter): 跳转寄存器,存储下一条指令地址; SB(Static base pointer): 全局静态起始地址. SP(Stack pointer): 表示本地变量的起始地址; 使用方式 symbol + offset(SP), 例如第一个变 …

    阅读更多
  • golang module 使用教程

    May 30, 2019 · 2 min read · go module

    Go module 是golang最新的包管理工具,可以使依赖包版本信息更明确与可控。module 是关于Go packages的集合,存储在根目录下的go.mod文件中,go.mod 定义了模块的模块路径以及模块的依赖属性,依赖属性包含模块路径以及特定寓意的版本信息。 需要注意的是:在Go 1.13之前go module 在GOPATH下是默认不开启的,这是为了兼容的需要,如果需要使用go module可以在GOPATH/src外的路径创建go.mod文件。 本文会介绍Go module的一些基本用法; 常见命令 创建一个模块 添加一个依赖 升级依赖 其他命令 常见命令 go mod 提供了以下命令 download: 下载依赖包 …

    阅读更多

Garfcat

live and learn.
阅读更多

精选文章

  • Linux查看网络接口带宽常用命令
  • 如何利用宿主机工具进行 Kubernetes Pod 网络调试
  • docker 容器日志过大问题
  • Golang 错误处理最佳实践
  • 设备硬件信息获取
  • 一文读懂iptables/netfilter附带实战
  • mongodb 事务
  • es 与 mongodb比较,es 是否可以作为存储使用呢?

最新文章

  • Linux查看网络接口带宽常用命令
  • 如何利用宿主机工具进行 Kubernetes Pod 网络调试
  • docker 容器日志过大问题
  • Golang 错误处理最佳实践
  • 设备硬件信息获取
  • 一文读懂iptables/netfilter附带实战
  • mongodb 事务
  • es 与 mongodb比较,es 是否可以作为存储使用呢?

分类

编程语言 5 KUBERNETES 4 LINUX 4 KUBERNETES EXTEND 3 STORAGE 2 TECHNOLOGY 2 协议 2 工具命令 2 CONTAINER 1 GOLANG 1 KARMADA 1 KUBERNETES SERVERLESS 1 MONGODB 1 NETWORK 1
所有分类
CONTAINER1 GOLANG1 KARMADA1 KUBERNETES4 KUBERNETES EXTEND3 KUBERNETES SERVERLESS1 LINUX4 MONGODB1 NETWORK1 NOSQL1 STORAGE2 TECHNOLOGY2 编程语言5 工具命令2 协议2
[A~Z][0~9]

专栏

GOLANG 5 KUBERNETES EXTEND 3 KUBERNETES 2 KNATIVE 1 NOSQL 1 命令 1

标签

KUBERNETES 6 GO 5 DOCKER 3 KUBEBUILDER 3 ES 2 EXTEND 2 MONGODB 2 NETWORK 2 ROOK 2 SHELL 2 CMP 1 COMMAND 1 CONTROLLER RUNTIME 1 CPU ID 1
所有标签
CMP1 COMMAND1 CONTROLLER RUNTIME1 CPU ID1 DEBUG1 DOCKER3 DSTAT1 EDGEFS1 EDGEFS-ROOK1 EFFECTIVE1 ERROR1 ES2 EXTEND2 GO5 HBASE1 IFTOP1 INDEX1 INFORMER1 IPTABLES1 IPTRAF-NG1 KARMADA1 KNATIVE1 KUBEBUILDER3 KUBERNETES6 KUBERNETES ARCH1 KUBERNETES MONITORING1 KUBERNETES SERVERLESS1 LOG1 MAC1 MODULE1 MONGODB2 MQTT1 NETWORK2 NFS1 NLOAD1 NOSQL1 REDIS1 ROOK2 ROOK-NFS1 SCHED1 SED1 SHELL2 STACK1 START1 TCP1 TEST1 TESTING1 TRANSACTION1 VNSTAT1 错误处理最佳实践1 数据库选型1 主板序列号1
[A~Z][0~9]
有趣

Copyright  有趣. All Rights Reserved