Go Heap Profile 怎么了?
Go heap profile 是常常用来检查内存泄露和内存占用大问题的问题的手段,而且非常常用。而且,我们也经常创建两个间隔较长的 heap profile, 获取它们的差值来方便查看内存泄露: Hi, 使用多年的 go pprof 检查内存泄漏的方法居然是错的?! [1]今天,度厂的一位同学提出
GoCN
0
Go 1.22 的新增功能系列之二:reflect.TypeFor
Go 1.22 的第一个候选版本已经发布,这意味着最终版本即将发布,现在是我在博客中介绍我在这个周期中所做工作的时候了。像往常一样,我的贡献很小,但它们是我的,所以我将从幕后的角度来谈谈它们。首先是reflect.TypeFor。这是整个函数:// TypeFor returns the [Type
GoCN
0
Go早期是如何在Google内部发展起来的
2007年Go诞生于Google,2009年Google正式对外宣布了Go语言的开源!时至今日,距离Go开源已经过去了近15个年头了[1]!Go在Google公司内部究竟是怎样的一个状态呢?前Google员工Yves Junqueira近期撰文从其个人所见所闻谈了Go在Google的历程[2]!这里
GoCN
0
Go 1.22 的新增功能系列之一:cmp.Or
截至撰写本文时,Go 1.22 已经发布几个月了。早就该结束我为 1.22 所做的工作的系列了。抱歉耽搁了这么久,我最近忙于生活事务。如果您错过了我关于reflect.TypeFor(https://blog.carlana.net/post/2024/golang-reflect-type-for
GoCN
1
使用 GitHub Actions 构建 Golang PGO
今年 2 月,我宣布 Dolt 版本现已构建为配置文件引导优化 (pgo) 二进制文件,利用 Golang 1.20 的强大功能将 Dolt 的读取性能提高 5.3%。在我宣布这一消息之前,我们的一位常驻 Golang 专家 Zach 试验并测试了 Golang 的 pgo 功能
GoCN
0
Go 从版本 1.0 到 1.22的性能变化
两年前,我在 1.2 到 1.18 的所有 Go 版本上比较了 GoAWK 解释器的两个不同基准。在本文中,我重新运行这些基准测试,添加缺少的 Go 版本(1.0 和 1.1)以及新版本(1.19 到 1.22)。我还包含了 Go 1.20 中添加的配置文件引导优化 (PGO) 的结果。我将引用我原
GoCN
10
Go Tips #001 一行代码测量函数的执行时间
“Golang Tips 是翻译的 Phuong Le @func25[1] 陆陆续续的发表的推文,目前已经发表 70+了。我征得 Phuong Le 的同意后,会逐步把这些推翻翻译过来,发布到公众号上。因为是推文,可能原作者的内容比较简单,比如第一个 tip 就一张图片,我会相应的进行扩充,丰富其
GoCN
10
K8s蓝绿部署:优雅应对应用程序更新挑战
Kubernetes 是一个开源容器编排系统,可简化软件部署、扩展和管理。蓝绿部署是一种部署模式,通过同时运行两个相同的生产环境来最大限度地减少停机时间。通过创建蓝色和绿色部署,设置服务和路由规则,以及执行蓝绿...
GoCN
0
《从慢速到SIMD》聊Go边界检查消除
在翻译的从慢速到 SIMD一文中, SourceGraph 工程师其中的一个优化就是边界检查消除(BCE,bounds check elimination)技术,同时他也抛给了读者一个问题: “ 为啥在使用 a[i:i+4:i+4] 而不是 a[i:i+4]? 本文第一部分先...
GoCN
0
元老与新秀:Go sort.Search()和sort.Find()
sort.Search() sort.Search() 提交于遥远的2010年11月11日,提交者是Go三位创始人之一的Robert Griesemer[1], 随Go第一个正式版本一起发布 从这个意义上说,是标准库元老级的函数了~ sort.Search()[2] 用于在排序的切...
GoCN
0
优化AI生命周期:k8s下大模型部署的新选择!
前言 AI 商业化的时代,大模型推理训练会被更加广泛的使用。比较理性的看待大模型的话,一个大模型被训练出来后,无外乎两个结果,第一个就是这个大模型没用,那就没有后续了;另一个结果就是发现这个模型很有用,那...
GoCN
0
Go语言进入Tiobe指数前10名
谷歌的 Go 语言(即 golang)在 Tiobe 语言流行度指数中达到了历史最高位置。该语言目前在语言流行度排名中排名第八,并且多年来一直在上升。 Go 可能最出名的是用于开发 Docker 和 Kubernetes 的语言, 一年前在 Ti...
GoCN
0
从慢速到SIMG: 一个Go优化的故事
SourceGraph 的工程师 Camden Cheek 提供的一个利用 SIMD 进行 Go 性能优化的故事: From slow to SIMD: A Go optimization story [1]。 这是一个关于某函数的故事,这个函数被大量调用,而且这些调用都在关键路径上...
GoCN
0
极限挑战:使用 Go 打造百亿级文件系统的实践之旅
JuiceFS 企业版是一款为云环境设计的分布式文件系统,单命名空间内可稳定管理高达百亿级数量的文件。 构建这个大规模、高性能的文件系统面临众多复杂性挑战,其中最为关键的环节之一就是元数据引擎的设计。JuiceFS...
GoCN
0
K8Studio登场!全新K8S IDE助力轻松管理集群
K8Studio 是一个新的 Kubernetes 工具,可轻松管理云端或裸机上的 Kubernetes 集群。它提供直观界面,支持在云环境或裸机上管理集群。 K8Studio 致力于创建一个全面的图形界面,使用户能够轻松管理他们的 Kubernetes...
GoCN
0
探索Kubernetes v1.30:激动人心的新功能和升级!
兴奋不?我们不都是吗?Kubernetes v1.30 版本带来了一系列令人期待的更新,包括动态资源分配(DRA)的结构化参数和节点交换内存 SWAP 支持的改进。动态资源分配的结构化参数增加了资源管理的透明度和效率,而节点交换内存的改进则提高了系统稳定性。现在让我们探讨一下将
GoCN
0
Go 1.22引入的包级变量初始化次序问题
细心的朋友可能已经注意到,从春节后,我的博客就“停更”了!实际上,这一情况部分是因为工作上的事务繁忙,另一部分则是因为我将工作之外的闲暇时间更多地投入到一本即将于今年中下旬出版的书的撰写了:在之前的积累基础上,我花了两个多月的时间完成了初稿。当然,我也深切地怀念博客写作所带来的乐趣和与读者的互动。正
GoCN
0
亲测体验Go语言模糊测试
何为 模糊测试 (Fuzz Testing)? 模糊测试是一种自动化的软件测试技术,它通过向程序提供无效、意外或随机的数据作为输入来检测软件中的错误、漏洞或失败。这种测试方法的目的是找到程序处理意外或异常输入时可能会崩...
GoCN
0
不看就落后了,Go 1.22 中更好的http router
很多人为了使用Go web中更好的路由,会使用第三方的库 httprouter、gorilla/mux等。在明年的春节左右发布的Go 1.22中,Go官方终于对标准库中的http.ServeMux下手了,对它的功能进行了优化,终于可以抛弃第三方库了。...
GoCN
0
别再用GDB了,一文掌握Go最好用的调试器Delve
2024年我们将全面开启线下meetup,为了确保我们的活动能够满足大家的需求和兴趣,希望邀请大家一起参与投票,选择最适合的城市。 另外我们开放2024议题征集通道,欢迎各位有实战经验、独特观点的小伙伴勇跃分享~ 议...
GoCN
0