Go 最细节篇|内存回收又踩坑了
分享一个 GC 相关的踩坑实践。公司线上某组件内存资源泄漏,偶发 oom 。通过 Go 的 pprof 排查,很快速定位到泄漏的数据结构 A ,结构 A 的相关资源是通过 Go 的 Finalizer 机制来释放的。但诡异的来了,对照着代码审视了多次之后,大家一致断定,这段代码绝对没有泄漏的问题。但是,事实胜于雄辩,现实就是泄漏就在此处。想不通。。。
Go1.20 arena 能手动管理内存了,怎么用?
最近 Go1.20 中的手动管理内存受到了很多人的关注。众所周知,Go 是一门带垃圾回收(GC)的编程语言,可以进行自动的内存申请、释放等内存操作。
PHP vs Go,为什么 Go 不支持命名参数调用函数?
“为什么 Go 不能像 PHP、Python 一样,在调用函数时,直接带上参数名和值一起传入。这样就不用特意去看这个函数的形参的命名、类型等。明明 PHP8 都支持了?” 今天针对命名参数这个特性展开思考,看看 Go 怎么回事。
vocechat-适合个人或企业的开源聊天系统
VoceChat是一款支持独立部署的个人云社交媒体聊天服务。15MB 的大小可部署在任何的服务器上,部署简单,很少需要维护。前端可以内嵌到自己的网站下,数据完全由用户自己掌握,传输过程加密。VoceChat 适用于团队内部交流,个人聊天服务,网站客服,网站内嵌社区的场景。
一文了解一线互联网大厂的 Golang 单测最佳实战经验
Go 单测里面,最常见的就是通过 gomonkey(stub) 打桩或者 mocker(mock) 的模拟来替换掉我们原本的执行逻辑,因此首先我们要对这两种方式有一个比较深入的理解,要理解为何 Go 单测的时候能够替换掉原来的方法!!!
还能这样玩?Go 将会增强 Go1 向前兼容性
本次要提到的 “向前兼容”,指的是旧版本的 Go 编译新的 Go 代码。这个方向比较少被谈论,甚至特意设计。 让我有种,还能这样搞的感觉?
ISM Web工业可视化组态软件
ISM组态软件通过浏览器操作组态工具、浏览组态画面,实现工程管理、组态编辑、工业设备采集以及组态运行三大功能。通过实现图元组态、可视化图表组态、数据库组态的配置与关联,完成基于Web服务的实时数据监控与服务端的多用户访问等。采用标准HTML5技术,基于B/S架构进行开发,支持WEB端呈现,支持在浏览器端完成便捷的人机交互,简单的拖拽即可完成可视化页面的编排设计。支持Windows、Centos等其他基于Linux内核的系统。
ETL 是什么 ETL 工具有哪些 ETL 工具对比 engine
ETL 工具对比 国产 ETL 工具 Go 语言开发 ETL
加大力度!Go 将会增强 Go1 向后兼容性
Go1 有兼容性承诺,但如果发现了 BUG,会破坏兼容性。那怎么办?是大胆修改,破坏掉,还是说设计如此,打死不改?
Go 语言代码风格规范-概述篇
如果你所在的团体还未形成一套系统的 Go 风格规范,不妨参考这份指南。
Go 语言代码风格规范-指南篇
如果你所在的团体还未形成一套系统的 Go 风格规范,不妨参考这份指南。
Go定时器的三种实现方式
很多时候需要周期性的执行某些操作,就需要用到定时器。定时器有三种思路。
别乱用了,用新的。Go SliceHeader 和 StringHeader 将会被废弃!
以重点来讲,SliceHeader 是 Slice(切片)的运行时表现;StringHeader 是 String(字符串)的运行时表现。
最好的 Go 框架:没有框架?
作为Go 语言的团队领导者这几年时间,我从初学者那里听到的最常见问题是“我应该使用什么框架?”。我的想法是使用过去的语言经验去编写 Go 程序往往会让结果变得非常糟糕。
用 Go map 要注意这 1 个细节,避免依赖他!
有的小伙伴没留意过 Go map 输出、遍历顺序,以为它是稳定的有序的,会在业务程序中直接依赖这个结果集顺序,结果栽了个大跟头,吃了线上 BUG。 有的小伙伴知道是无序的,但却不知道为什么,有的却理解错误?
Go1.20 将禁止匿名接口循环导入!这是一次打破 Go1 兼容性承诺的真实案例
最近因为临近新版本发布节点,我在看 Go1.20 的新特性《spec: disallow anonymous interface cycles[1]》,发现了一个比较骚的操作...以前我都没想到可以这么用,还有点意思,分享给大家。
产品速递 | 璞华易投「投资人报告」平台,让投资人运筹帷幄,精准把控投资绩效
方正璞华针对金融领域的不同业务场景研发的定制化模型已在银行、基金、信贷等数十个行业应用落地,为用户提供强有力的技术支持和系统服务,赢得用户的深度信赖。
聊聊Go语言中的数组与切片
数组是一个由固定长度的特定类型元素组成的序列,一个数组可以由零个或多个元素组成。
golang连接MySQL时候的连接池设置
1.使用连接池,执行完之后关闭连接 现象: 4个并发由4个连接执行,执行完后连接保持,空闲状态2.使用连接池,不关闭连接 现象:4个并发由4个连接执行,执行完成后连接保持,空闲状态3.不妨加大并发数,使其超过最大连接池大小,设置为并发20 db.SetMaxOpenConns(10) db.SetMaxIdleConns(5) 现象:20
golang协程学习--协程与管道配合的简单案例
package mainimport ( "fmt" "math/rand" "time")type Cat struct { Name string Age int}func writeCh(ch