1.都说Go语言性能非常强大,那么到底比Python强多少?为了比较Go语言和Python语言在单线程性能上的差距,我们可以做一个简单实验,从1亿减到1:Python代码(以下均分别提供图片和文字版代码):import time
def decrement(n):
while n > 0:
n -= 1
start = time.time()
decreme
转载
2023-07-11 22:27:28
79阅读
前几章我们学习了Golang内存管理的基本原理(还不清楚内存管理的童鞋请移步看内存管理系列)。现在我们来看GC的基本原理是什么?一、GCGC(Garbage Collection)提供自动内存管理机制,自动释放回收不使用的内存对象,防止内存泄漏GC的算法随着go语言版本的更新而不断变化goV1.3之前标记-清除(mark and sweep)算法goV1.5三色标记法goV1.8三色标记法+混合写
# Go MySQL 原理 - 简明科普
在现代应用开发中,关系型数据库(如 MySQL)的使用变得越来越普遍。在 Go 语言中,连接和操作 MySQL 数据库的过程不仅简单易用,而且高效。在本文中,我们将探讨 Go 中的 MySQL 数据库原理,并通过代码示例进行说明。
## Go MySQL 驱动
Go 语言通过 `database/sql` 包与不同的数据库进行交互。对于 MySQL,
go反射原理 本文基于go1.13.15 1.go汇编 1.1 基本语法 go采用plan9的汇编器完成汇编,有下面几个重要的伪寄存器 FP: Frame pointer: 局部变量访问 PC: Program counter: 程序计数器 SB: Static base pointer: 全局变量 ...
转载
2021-07-28 18:07:00
398阅读
2评论
go test工具Go语言中的测试依赖go test命令。编写测试代码和编写普通的Go代码过程是类似的,并不需要学习新的语法、规则或工具。go test 命令,会自动读取源码目录下面名为 *_test.go 的文件,生成并运行测试用的可执行文件。,所有以_test.go为后缀名的源代码文件都是go test测试的一部分,不会被go build编译到最终的可执行文件中。在*_test.go文件中有三
前言Go 语言的 slice 是用的比较多的, 我们需要掌握其原理,避坑。Slice 说的啥slice 翻译
原创
2022-06-23 09:19:50
215阅读
反射概念 反射提供一种让程序检查自身结构的能力: “反射是一种检查i
转载
2021-07-14 23:19:00
149阅读
2评论
文章目录go语言操作MySql1.1引入相关依赖1.2使用MySql驱动1.3测试MySql连接1.4CRUD1.4.1创建数据库1.4.2创建表1.4.3插入数据1.4.4查询数据1.4.5更新数据1.4.6删除数据1.5完整代码示例1.6MySql事务1.6.1什么是事务1.6.2事务的特性1.6.3事务的方法1.6.4简单实现 go语言操作MySql1.1引入相关依赖import (
转载
2023-10-15 16:23:48
70阅读
本文介绍了RPC的概念以及Go语言中标准库rpc的基本使用。什么是RPCRPC(Remote Procedure Call),即远程过程调用。它允许像调用本地服务一样调用远程服务。RPC是一种服务器-客户端(Client/Server)模式,经典实现是一个通过发送请求-接受回应进行信息交互的系统。首先与RPC(远程过程调用)相对应的是本地调用。本地调用package main
import "f
转载
2024-04-18 13:54:42
100阅读
说明做项目中发现自己对很多东西的理解有偏差,所以决定做个总结,也分享给需要的朋友。如有错误和遗漏,欢迎沟通交流。GitHub示例源码本文介绍了Go中原生和第三方RPC使用方法,环境搭建方法并提供了材料。RPC远程过程调用(Remote Procedure Call),通俗的说,RPC可以实现跨机器、跨语言调用其他计算机的程序。举个例子,我在机器A上用C语言封装了某个功能的函数,我可以通过RPC在机
转载
2024-05-30 01:43:21
61阅读
RPC框架与其他框架的不同传统的形式是所有的需求都集成在一起,各部分连接紧密,而RPC则是强调一种分布式的感觉,各个部分的需求分散处理,耦合性更低。func getSum(a int, b int) int{
return a+b
}
func main() {
var a int = 10
var b int = 20
fmt.Println(getSum(a, b))
}比如上面
转载
2024-04-04 15:51:55
37阅读
一、Go语言的基本认识二、基本语法结构三、包的基本概念四、Go代码执行方式五、Go语言变量六、数据类型 一、Go语言的基本认识 Go语言的优点1、Go 语言保证了既能到达静态编译语言的安全和性能,又达到了动态语言开发维护的高效率,使用一个表达式来形容 Go 语言:Go = C + Python ,说明 Go 语言既有 C 静态语言程序的运行速度,又能达到了 Python 动态语
转载
2023-07-12 14:37:09
66阅读
go核心原理本人在一家go技术栈工作2年有余,因此梳理一下我认为比较重要的go语言技术知识,一些基础的概念,比如function, interface这些就忽略了。https://draveness.me/golang/https://www.bookstack.cn/read/qcrao-Go-Questions/map-map%20%E7%9A%84%E6%89%A9%E5%AE%B9%E8%
转载
2023-09-20 22:22:28
72阅读
文章目录一、垃圾回收二、逃逸分析三、Go GC【重要】1.标记清除法2.三色标记法3.“强-弱” 三色不变式4.屏障机制5.混合写屏障机制场景1.对象被一个堆对象删除引用,成为栈对象的下游场景2.对象被一个栈对象删除引用,成为另一个栈对象的下游场景3.对象被一个堆对象删除引用,成为另一个堆对象的下游场景4.对象从一个栈对象删除引用,成为另一个堆对象的下游四、总结 对编程语言来说,GC 就是一个
转载
2023-09-05 23:13:40
169阅读
Golang中的Map是一个键值对的数据结构 底层是一个哈希表,核心数据结构是数组+链表 哈希表自然会有哈希函数,通过一个哈希函数将key映射到哈希表的一个位置, 有哈希函数就会有哈希冲突 Golang是使用数组+链地址法解决哈希冲突,当多个key映射到同一位置的时候,会把冲突的key链接起来 形成
原创
2021-06-17 19:15:49
972阅读
一、单元测试的意义维护单元测试,需要投入一定的时间和精力,但是作为一个长期迭代的产品,定义完整的单元测试的收益是绝对大于投入的,其意义主要有。相比于代码创造的时间,工程修改和维护需要占用大量的时间。单元测试的意义,就在于修改和维护的用例可以重复使用,减少重复bug的出现,提升代码的质量和研发速度。如果某些功能难以写测试用例,那么便说明代码的耦合性较强。因此单元测试,可以检验和保证代码的松散耦合。本
转载
2024-05-09 15:12:57
78阅读
# Go语言编译原理
Go语言是一种静态类型、编译型语言,由Google开发。它具有简洁、高效、并发处理能力强等优点,因此在云计算、网络服务等领域得到广泛应用。在使用Go语言开发程序时,编译是一个必要的环节。本文将介绍Go语言的编译原理,并附带代码示例进行说明。
## Go语言编译流程
Go语言的编译过程可以分为四个主要阶段:词法分析、语法分析、语义分析和代码生成。
### 词法分析
词
原创
2023-09-28 22:47:38
47阅读
Go gin运行原理一、router:= gin.Default()初始化一个引擎,是gin.New()的升级二、router.GET1.RESTFUL风格的请求方法(method)2.有两个参数:relativePath:路由,string类型HandlerFunc:执行的函数3.可以使用router.Handle代替,多了个的method参数(字符串),method参数必须是大写的,如:GET三、执行的函数1.必须有个参数是gin.Context指针类型的注意:context是
原创
2022-01-19 09:55:50
273阅读
Go gin运行原理一、router:= gin.Default()初始化一个引擎,是gin.New()的升级二、router.GET1.RESTFUL风格的请求方法(method)2.有两个参数:relativePath:路由,string类型HandlerFunc:执行的函数3.可以使用router.Handle代替,多了个的method参数(字符串),method参数必须是大写的,如:GET三、执行的函数1.必须有个参数是gin.Context指针类型的注意:context是
原创
2021-08-14 10:35:12
308阅读
当然!我们刚刚深入探讨了切片的内部工作原理,现在正是将这些知识应用到具体场景的最佳时机。Go 的切片远不止是一个“动态数组”,它更是一种对底层内存的**“视图”或“窗口”**。理解了这一点,就能明白它在不同场景下的威力。下面我将切片的使用场景从简单到高阶,为你一一介绍。场景一:基础日常用法 (最常见的 90%)这是你在日常开发中最常用到的,核心是把它当作一个方便的、可变长度的集合。1. 存储动态集