ICode9

精准搜索请尝试: 精确搜索
  • 用golang开发系统软件的总结2022-12-03 17:31:56

    众所周知,golang非常适合用于开发后台应用,但也通常是各种各样的应用层软件。开发系统软件, 目前的首选还是C++, C, rust等语言。相比应用软件,系统软件需要更加稳定,更加高效。其维持自身运行的资源消耗要尽可能小,然后才可以把更多CPU、内存等资源用于业务处理上。简单来说,系统软件在CP

  • 字节微服务HTTP框架Hertz使用与源码分析2022-12-01 17:12:47

    一、前言Hertz[həːts] 是一个 Golang 微服务 HTTP 框架,在设计之初参考了其他开源框架 fasthttp、gin、echo 的优势, 并结合字节跳动内部的需求,使其具有高易用性、高性能、高扩展性等特点,目前在字节跳动内部已广泛使用。 如今越来越多的微服务选择使用 Golang,如果对微服务性能有要

  • golang nat 打洞2022-09-16 16:02:03

    golang nat 打洞 - 腾讯云开发者社区-腾讯云 https://cloud.tencent.com/developer/article/2065196 首先介绍下基础nat的四种方式,在进行nat转换的时候,我们在网关路由表上记录了映射关系,这个映射关系可以用六元祖表示 本地ip:本地port 外网ip:外网port 目标ip:目标port 复制 其中目

  • golang 包管理2022-09-16 01:01:28

    一、工作目录结构说明 1、bin:用于放置发布的二进制程序 2、pkg:用于放置发布的库文件 3、src:用于放置源代码 二、go install命令介绍 1、使用共go install编译并发布二进制文件 命令:go install gpkgmain 说明:编译并发布路径gpkgmain下的包,main包,则在将编译后的以pkgmain命名的二进

  • Golang Gin实践 连载十二 生成二维码2022-09-15 15:31:12

    前言 本章节将实现如下功能: 生成二维码 合并海报(背景图+二维码) 实现 首先,你需要在 App 配置项中增加二维码及其海报的存储路径,我们约定配置项名称为 QrCodeSavePath,值为 qrcode/ 生成二维码 安装:go get -u github.com/boombuler/barcode 工具包 考虑生成二维码这一动作贴合工具

  • Golang Gin实践 连载十一 实现导出、导入 Excel2022-09-15 11:02:11

    前言 在本节,我们将实现对标签信息的导出、导入功能,这是很标配功能了,希望你掌握基础的使用方式 另外在本文我们使用了 2 个 Excel 的包,excelize 最初的 XML 格式文件的一些结构,是通过 tealeg/xlsx 格式文件结构演化而来的,因此特意在此都展示了,你可以根据自己的场景和喜爱去使用 配

  • go-golang学习笔记-12022-09-14 21:32:20

    golang学习笔记-1 golang源码包下载网站 golang导入多个包的写法 红色框和橙色框等价 橙色框,圆括号,分行写包名,注意没有逗号 go语言的函数的左括号 红色框所言,和函数名在同一行 声明变量 声明变量的默认值 红色框声明一个int型的变量 默认值是0 声明变量

  • fgprof golang profiler 支持on cpu 以及off cpu2022-09-12 18:33:20

    fgprof 是相比golang 默认pprof 方便的工具,可以用来方便的分析on cpu 以及off cpu ,相比官方的提升不少 说明 没有银弹,fgprof 也有缺点的: 不支持c 函数,当前实现依赖go 的调度器,一些数据可能不准确,parca 也依赖了此包 具体是在parca server 中 参考处理   internalMux.H

  • polarsignals frostdb golang嵌入式列存2022-09-12 18:01:07

    frostdb 是parca 内部存储的核心,是一个列式存储 包含的特点 golang 开发,方便golang 应用嵌入 不可变数据集 数据包含动态列,列可能在运行时扩展 技术上基于了apache parquet (存储) 以及apache arrow (查询) 参考资料 https://github.com/polarsignals/frostdbhttps://github.com/seg

  • golang 优先队列2022-09-11 18:32:27

    前置条件 golang 优先队列几种构建方式,使用比起其他语言稍微有些复杂 6178. 将区间分为最少组数 简单构建优先队列 func minGroups(intervals [][]int) int { if len(intervals)==0{ return 0 } //按照前面一个位置进行排序,相等按照后面的升序 s

  • Golang 实现strtotime 字符串转换为时间戳的方法2022-09-10 00:00:26

                       在php中,有strtotime 将字符串转换为时间戳,在Golang 中,同样可以实现类型的函数。     1 package main 2 3 import ( 4 "fmt" 5 "time" 6 "regexp" 7 "strings" 8 "strconv" 9

  • Gin实践 连载六 Golang优雅重启HTTP服务2022-09-09 16:01:04

    http.Server-Shutdown() package main import ( "context" "fmt" _ "gin_log/models" "gin_log/pkg/setting" "gin_log/routers" "log" "net/http" "os" "os/signal"

  • 创建一个 Golang 库2022-09-06 08:31:39

    创建一个 Golang 库 使用 go 模块 在本文中,您将学习如何使用 go mods 创建自己的库并将其导入所需的项目。 首先让我向您介绍一下 gomodules 是什么。 “模块是存储在文件树中的 Go 包的集合,其中包含 ** 去.mod** 根目录下的文件。这 ** 去.mod** 文件定义了模块的模块路径,它也是

  • golang指定客户端的端口2022-09-05 17:30:28

    当客户端去连接服务端时,端口号是随机的,如果需要指定客户端端口号,就不要指定IP,否则会一直报错的,程序如下: netAddr := &net.TCPAddr{Port: 51860} d := net.Dialer{LocalAddr: netAddr} conn, err := d.Dial("tcp", "127.0.0.1:38001") if err != nil { fm

  • golang中读取配置文件的包go-ini/ini2022-09-05 11:03:44

    思考 首先,在一个初始项目开始前,大家都要思考一下 各种程序配置,写在代码中好吗? API的错误码硬编在程序中,合适吗? DB句柄谁都去open,好吗? 获取分页等公共参数,不统一管理起来,好吗? 显然在较正规的项目中,这些问题的答案都是不可以 [https://github.com/go-ini/ini](https://github.com/go

  • golang面试经验22022-09-04 15:34:30

    1、make 和 new 的区别? 宝典导航 2、了解过golang的内存管理吗?宝典导航 3、调用函数传入结构体时,应该传值还是指针?说出你的理由?宝典导航 4、线程有几种模型?宝典导航 5、Goroutine 的原理了解过吗,讲一下实现和优势? 宝典导航 6、Goroutine 什么时候会发生阻塞? 7、PMG模型中Gorout

  • 如何进行性能调优-golang2022-09-03 15:34:24

    目录前言内存cpu占用docker镜像占用 前言 内存 cpu占用 docker镜像占用 docker load -I xx.tar.gz dive xxx

  • Golang占位符2022-09-03 15:32:01

    有哪些占位符? 常见占位符 %T 类型占位符 %v 值占位符 %d 整数占位符 %f 浮点占位符 %c 字符占位符 %s 字符串的占位符 占位符类型 通用占位符 占位符 说明 举例 %v 获取数据的值 Printf(“%v”, people) %+v 获取数据的值,如果结构体,会携带字段名 Printf(“%+v”, peopl

  • golang sort.Slice用法2022-09-03 12:32:10

    func Slice(x interface{}, less func(i, j int) bool) // 第一个形参是:待排序数据 x interface{} // 第二个形参是:排序判断方法 // 形参i 代表后一个元素 // 形参j 代表前一元素 // 返回值:代表i,j是否交换。true:交换,false:不交换。 less func(i, j int) bool demo: package ma

  • Golang基础-22022-09-03 10:31:30

    Golang基础2 指针 如果声明变量var x int ,则&x是获取x值所在的地址,类型是整型指针(*int),即我们可以声明一个变量来接收其返回值 var p *int=&x 那么p就是一个指针变量 age:=18 // 这里是输出i变量对应的地址通过&+名字获取 fmt.Println(&age) 这里我们要得到通过ptr指针

  • 使用golang实现Redis中间件2022-09-01 23:04:26

    (一).RESP协议解释   RESP协议在Redis1.2被引入,直到Redis2.0才成为和Redis服务器通信的标准。这个协议需要在你的Redis客户端实现。RESP 是一个支持多种数据类型的序列化协议:简单字符串(Simple Strings),错误( Errors),整型( Integers), 大容量字符串(Bulk Strings)和数组(Arrays)。该协议的

  • 在ubuntu 上安装golang2022-08-31 22:32:28

    https://golang.google.cn/dl/ 方式一 下载安装包 wget https://golang.google.cn/dl/go1.19.linux-amd64.tar.gz 解压到文件夹下 sudo tar -xvzf go1.19.linux-amd64.tar.gz -C /usr/local/ 编译配置环境变量 sudo nano ~/.bashrc export GOPATH=/home/zic/gopath export G

  • golang解析yaml文件2022-08-31 20:30:08

    golang解析yaml文件   yaml 文件是目前最常用的配置文件,使用go语言编写代码和工具时,也会用到yaml文件,将服务配置及中间件等信息定义到yaml文件中,那么如何将yaml文件中定义的信息读取到代码中进行使用呢?此处使用yaml包和viper包来解析配置文件,后续可根据实际场景来选用。 一、yam

  • 手写快排,解决栈溢出写法,Golang2022-08-31 13:33:14

    package main import "fmt" var swapcnt int func main() { arr := []int{2, 3, 4, 5, 1} //idx := Swap(arr, 0, len(arr)) //fmt.Println(idx, arr) myquickSort(arr, 0, len(arr)-1) fmt.Println(arr) fmt.Println(swapcnt) } func Swap(arr []int, l,

  • Golang 中反射的应用与理解2022-08-29 10:01:07

    Golang 中反射的应用与理解 https://mp.weixin.qq.com/s/TmzV2VTfkE8of2_zuKa0gA Golang 中反射的应用与理解 原创 赵燕辉 字节跳动技术团队 2022-08-23 12:00 发表于北京 字节跳动技术团队 字节跳动的技术实践分享 231篇原创内容 公众号 动手点关注 干货不迷路 

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有