话题编程语言 › Go

编程语言:Go

关联话题: Golang

Importing Protobuf with Go Modules

Protocol buffers and gRPC are established standards for building modern web services. Go modules are now the default way of versioning packages in Go projects. So how can you import and reuse existing .proto definitions from your versioned dependencies while using Go modules?

如何避免 Go 命令行执行产生“孤儿”进程?

在 Go 程序当中,如果我们要执行命令时,通常会使用 exec.Command ,也比较好用,通常状况下,可以达到我们的目的,如果我们逻辑当中,需要终止这个进程,则可以快速使用 cmd.Process.Kill() 方法来结束进程。但当我们要执行的命令会启动其他子进程来操作的时候,会发生什么情况?

Go 调用 Java 方案和性能优化分享

一个基于 Golang 编写的日志收集和清洗的应用需要支持一些基于 JVM 的算子。

一文说尽Golang单元测试实战的那些事儿

单元测试,通常是单独测试一个方法、类或函数,让开发者确信自己的代码在按预期运行,为确保代码可以测试且测试易于维护。腾讯后台开发工程师张力结合了公司级漏洞扫描系统洞犀在DevOps上探索的经验,以Golang为例,列举了编写单元测试需要的工具和方法,然后针对写单测遇到的各种依赖问题,详细介绍了通过Mock的方式解决各种常用依赖,方便读者在写go语言UT的时候,遇到依赖问题,能够快速找到解决方案。最后再和大家探讨一下关于单元测试上的一些思考。

Go 语言中的零拷贝优化

相信那些曾经使用 Go 写过 proxy server 的同学应该对 io.Copy()/io.CopyN()/io.CopyBuffer()/io.ReaderFrom 等接口和方法不陌生,它们是使用 Go 操作各类 I/O 进行数据传输经常需要使用到的 API,其中基于 TCP 协议的 socket 在使用上述接口和方法进行数据传输时利用到了 Linux 的零拷贝技术 sendfile 和 splice。

我前段时间为 Go 语言内部的 Linux splice 零拷贝技术做了一点优化:为 splice 系统调用实现了一个 pipe pool,复用管道,减少频繁创建和销毁 pipe buffers 所带来的系统开销,理论上来说能够大幅提升 Go 的 io 标准库中基于 splice 零拷贝实现的 API 的性能。因此,我想从这个优化工作出发,分享一些我个人对多线程编程中的一些不成熟的优化思路。

Golang协程池的使用

系统开发部分需求涉及到了多任务执行,而多任务执行过程中需要处理并发问题。

go pprof实战

近期重构了项目的投放系统,有幸做了一次比较完整的服务优化,尤其针对trace方面的分析网上资料还是比较少了,这里结合自己的理解记录一下!

pprof++: A Go Profiler with Hardware Performance Monitoring

Golang是Uber数千个后端服务的命脉,在数百万个CPU核心上运行。了解我们的CPU瓶颈是至关重要的,这既是为了减少服务延迟,也是为了使我们的计算机群高效。Uber运营的规模需要对代码和微架构的影响有深入的了解。

虽然与其他几种语言相比,内置的Go剖析器比没有剖析器要好,但Go中事实上的CPU剖析器在基于Linux的系统上(也可能在其他操作系统上)有严重的局限性,并且缺乏许多[1, 2, 3, 4]充分理解CPU瓶颈所需的细节。

从操作系统的角度理解Goroutine – Go 协程设计系列(1/2)

Gopher们一脚迈进了并发编程的大门,冲刺着去体验天然并发带来的快感,却发现自己刚迈进去一半,就被并发的门槛绊摔了一跤。

Go实现的高性能http缓存服务器Jaguar

在业界,http 缓存服务器有一些前辈产品,有些公司内部也会自己实现 http 缓存服务器。我们在2015年落地详情页静态化方案的时候,主要参考了三个业界比较著名的 http 缓存服务器:VARNISH CACHE,SQUID 和 apache traffic server,但由于varnish 和 squid 对动静态数据合并支持比较弱,且当时 ATS 在业界有不少成功的业界场景并且性能卓越,所以最后选择了 ATS 来实现。而 NGIMX+LUA 的方式由于可能会需要用 lua 实现一些比较复杂的功能以及性能上不及 ATS,最后没有被采用。

字节跳动 Go RPC 框架 KiteX 性能优化实践

KiteX 自 2020.04 正式发布以来,公司内部服务数量 8k+,QPS 过亿。经过持续迭代,KiteX 在吞吐和延迟表现上都取得了显著收益。本文将简单分享一些较有成效的优化方向,希望为大家提供参考。

网易传媒Go语言探索

网易传媒于2020年底开始尝试Go语言的探索,用于解决内存资源使用率偏高,编译速度慢等问题,本文将详细描述传媒在Go语言方面的所做的工作和取得的收益。

看点信息流Go后台单元测试有效性提升

变异测试(Mutation Testing)通过模拟典型应用错误,或者是强制产生有效地测试来定位测试用例设计中的弱点。本文将详细介绍看点信息流Go后台如何提升单测有效性的过程和结果。同时助力EPC研发模式变革成功。

Golang 单元测试:有哪些误区和实践?

几种隔离(mock)的手段。

一例 Go 编译器代码优化 bug 定位和修复解析

本文中介绍了 Go 编译器的整体编译流程脉络和一个编译优化错误导致数据越界访问的 bug,并分析了对这个 bug 的排查和修复过程,希望能够借此让大家对 Go 编译器有更多的了解,在遇到类似问题时有排查思路。

Golang 单元测试详尽指引

Golang单元测试框架介绍和选型推荐。

首页 - Wiki
Copyright © 2011-2026 iteam. Current version is 2.155.1. UTC+08:00, 2026-04-19 20:08
浙ICP备14020137号-1 $访客地图$