当前位置:首页 > 文章列表 >golang

golang
golang专题下共有 13890 篇文章
  • Golang零拷贝优化:io.Copy与sendfile详解
    Golang零拷贝优化:io.Copy与sendfile详解
    io.Copy默认使用中间缓冲区导致多次内存拷贝,而sendfile可实现零拷贝。io.Copy默认使用32KB缓冲区在用户空间中转数据,造成文件内容从磁盘到用户空间再到socket的多次复制;sendfile系统调用则直接在内核态完成文件传输,跳过用户空间,降低CPU和内存开销;Go标准库如net/http在静态文件服务等条件下会自动使用sendfile;手动触发可通过syscall.Sendfile实现,但需满足源为普通文件、目标支持sendfile等条件;适用场景包括大文件传输、静态资源服务和高并发
    Golang· Go教程   |  5个月  |   golang io.Copy 内存拷贝 零拷贝 sendfile 157浏览 收藏
  • Golang高效解析JSON方法分享
    Golang高效解析JSON方法分享
    Golang的encoding/json库可用于解析和生成JSON数据。1.使用json.Unmarshal可将JSON字符串解析为结构体,结构体字段需可导出并可通过标签匹配字段名。2.使用json.Marshal或json.MarshalIndent可将结构体序列化为JSON字符串,通过omitempty标签可忽略空值字段。3.对于不确定结构的JSON数据,可用map[string]interface{}接收,访问时需进行类型断言。4.通过实现json.Marshaler和json.Unmarshale
    Golang· Go教程   |  4个月  |   golang JSON 反序列化 序列化 encoding/json 157浏览 收藏
  • Golang锁竞争优化,atomic与sync.Pool实战技巧
    Golang锁竞争优化,atomic与sync.Pool实战技巧
    减少Golang锁竞争的核心是避免不必要的锁操作。1.使用atomic包进行原子操作,如atomic.AddInt64,适用于计数器等简单场景,避免Mutex的系统调用开销;2.利用sync.Pool复用对象,减少内存分配与GC压力,间接降低锁竞争;3.缩小锁粒度,仅保护必要临界区;4.读多写少场景使用sync.RWMutex,允许多个读并发执行;5.通过channel替代共享内存通信,避免锁的使用。不同场景应选择合适机制:atomic适合简单操作,RWMutex适合读多写少,channel适合gorou
    Golang· Go教程   |  4个月  |   golang 优化 锁竞争 sync.Pool atomic 157浏览 收藏
  • Golangdefer简化错误处理方法
    Golangdefer简化错误处理方法
    defer在Golang中用于延迟执行函数,常用于资源清理和错误处理。1.使用defer可确保函数返回前执行如关闭文件等操作,避免资源泄露;2.结合命名返回值,可在defer中捕获panic并设置错误信息;3.多个defer需按顺序处理错误,防止覆盖;4.defer性能影响较小,现代编译器已优化;5.最佳实践包括避免修改返回值、注意执行顺序、不过度使用。
    Golang· Go教程   |  3个月  |   golang 错误处理 defer 命名返回值 资源清理 157浏览 收藏
  • Golang集成NATSStreaming消息队列教程
    Golang集成NATSStreaming消息队列教程
    NATSStreaming通过消息持久化和可靠传递保障Golang应用消息不丢失,核心步骤包括:1.用Docker部署NATSStreaming服务器;2.安装stan.go客户端库;3.使用stan.Connect()建立连接并指定唯一客户端ID;4.通过Publish()发布消息,支持同步与异步模式;5.使用Subscribe()实现广播、QueueSubscribe()实现负载均衡消费;6.通过持久化ID实现断线重连后消息续传。尽管NATSStreaming仍用于部分存量系统,新项目建议优先评估Je
    Golang· Go教程   |  3个月  |   golang 消息队列 消息持久化 NATSStreaming 客户端ID 157浏览 收藏
  • Golang错误处理与服务稳定性技巧
    Golang错误处理与服务稳定性技巧
    Go语言通过defer、panic和recover实现错误恢复机制:panic触发运行时恐慌,中断当前流程;defer延迟执行函数,确保recover有机会捕获panic;recover仅在defer中有效,用于捕获panic值并恢复执行,防止程序崩溃。该机制常用于Web服务或goroutine中保护关键逻辑,避免单个错误导致整个服务失效。注意recover无法跨goroutine捕获,且应避免滥用panic,常规错误应通过error返回。
    Golang· Go教程   |  2个月  |   golang defer recover panic 错误恢复 157浏览 收藏
查看更多
课程推荐
  • Golang深入理解GPM模型
    Golang深入理解GPM模型
    Golang深入理解GPM调度器模型及全场景分析,希望您看完这套视频有所收获;包括调度器的由来和分析、GMP模型简介、以及11个场景总结。
    474次学习
  • Go语言课程Gin框架实战
    Go语言课程Gin框架实战
    Gin是一个用Go(Golang)编写的HTTPweb框架。它是一个类似于 martini 但拥有更好性能的API框架,由于 httprouter,速度提高了近40倍。如果你需要极好的性能,使用Gin吧。
    339次学习
  • Golang云原生架构师课程
    Golang云原生架构师课程
    Go是一门并发支持、垃圾回收的编译型系统编程语言;本课程转载自哔哩哔哩:https://www.bilibili.com/video/BV1Mh411M7A
    205次学习
  • Go编程基础视频教程
    Go编程基础视频教程
    Go是一门并发支持、垃圾回收的编译型系统编程语言,旨在创造一门具有在静态编译语言的高性能和动态语言的高效开发之间拥有良好平衡点的一门编程语言。我们收集了这套《Go编程基础视频教程》,希望能够帮助大家更好的学习go语言。
    168次学习
  • Golang进阶实战编程
    Golang进阶实战编程
    本课程是在《Go语言基础视频》基础之上录制的,是Go语言基础的后半部分。包括包的管理,IO操作,Go语言最大的亮点:高并发,goroutine,channel,反射等。本视频主要为了帮助Go语言的初学者,从零到一的快速入门。学完本套课程,可以学会如果通过包管理Go项目,并发模型,以及并发实现,channel通道如何传递数据,反射等等。
    129次学习
微信登录更方便
  • 密码登录
  • 注册账号
登录即同意 用户协议隐私政策
返回登录
  • 重置密码