加载中
golang 高负载问题(二)空转

我们的游戏还没有进入大推阶段,实时在线用户仅 200 左右,但是线上高性能服务器的 cpu 可以达到 8%,且偶现提升到 20%,单核跑满。此时服务器处理任务的效率受到影响,部分玩家在登录时心跳...

2022/06/10 10:28
586
golang 高负载问题(一)乱序

5.1 日,线上服务出现异常,表现为 cpu 负载升高,请求处理缓慢,玩家无法顺畅游戏。登陆游戏后服务器容易触发强刷。 通过对日志的检查,初步认定用户任务队列有问题,任务没有被按照请求的顺...

2022/06/10 10:23
365
Unity PlayerPrefs 的一个坑

本周在测试 deeplink 时遇到一个闪退的问题,提取日志: 03-05 10:46:30.442 2633 2633 D Unity : Uploading Crash Report 03-05 10:46:30.443 2633 2633 E Unity : UnityException: TrySetS...

2022/03/07 12:00
1.8K
golang 官方快排的一个坑

golang 的快排在排序前并不会检查当前 slice 是否已经有序,例如: package main import ( "sort" ) func main() { s := []int{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13} sort.Ints(s) } ...

go
2022/02/21 18:22
131
c# float.Parse / float.TryParse 的一个坑

现象 c# 在 parse 字符串数字时,会根据当前语言环境决定最终结果。Unity 应用也是如此。 例如下面这个例子,在德语环境下,最终的结果放大了 1000 倍。 类似的还有西班牙语,在这些语言中,...

2022/02/21 17:26
2.1K
为什么不建议在 go 中使用“继承"?

TL;DR go 没有虚函数,而 java 函数默认就是虚函数,它会通过动态绑定找到实际应该执行的函数。 严格的说,go 没有继承。我们使用结构体嵌套的方式实现的是一种“伪继承”。 go vs java 我们...

2021/08/28 15:17
227
如何让测试同学理解并发锁

有一天,一个叫做 hulk 的小伙子,挨了一刀,减少了 10 点生命值。 如果不考虑时间地点,不考虑刀子的来源(当然是我),上面这句话可以表现为下图。 其中 get 表示读数据,set 表示写数据,...

2021/02/07 18:58
3.9K
"b = &boy{}" vs "*b = boy{}" 谁不讲武德?golang 逃逸分析入门

背景 最近想要将 protobuf 变量和之前设计的数据对象整合起来,维护在内存中,以减少内存申请和 GC 的性能损耗。 feature or bug,gogoproto 解码疑惑 由于 gogoproto 在 unmarshal 时不保证...

2020/12/19 20:22
3.5K
golang slice append 总结

var r *reward var rs []*reward // [] 0 0 rs = append(rs, nil...) // [] 0 0 rs = append(rs, nil) // [] 1 1 rs = append(rs, r) ......

2020/07/26 03:37
448
wsl & Windows Termianl & expect & oathtool 实现更便捷的 xshell 体验

wsl & Windows Termianl & expect & oathtool 实现更便捷的 xshell 体验 1. wsl 1.1 安装 wsl 的发行版不限。具体的安装教程网上有很多,这里不多说。 笔者使用的发行版为 yuk7/ArchWSL。 2....

expect 实现类似 xshell 的脚本登录

xshell 免费版本只支持 4 个窗口,且用 xshell 打开的终端在某些情况下会失去快捷键支持(例如 command+backspace)。决定在 Linux 上寻找替代方法,偶然在 v2ex 上看到 expect 命令,它的语...

2020/05/06 21:16
1K
Prometheus & Grafana 初探

拿到一个新需求,通过 Prometheus & Grafana 监控接口。 有点晚了,长话短说,早点回家。 整合 Prometheus 到 go 项目中 可以参考官方示例。 重点只有这一句,表示记录一个值。对于我们来说就...

2020/01/03 00:09
304
如何利用 pprof 查询 go 内存占用

最近领导看到某个服务的内存占用很高,吩咐我查一下是啥问题。 前提 服务引用了 pprof 包 import ( _ "runtime/pprof" ) 监听了 http 端口 err := http.ListenAndServe(fmt.Sprintf(":%d", ...

2019/12/24 14:14
9.1K
golang context 的一个小坑

项目最近几个版本开始使用 context 包,主要用于透传参数。由于不够熟悉 context,我在优化代码时遇到了这样的问题。 func main() { ctx := context.WithValue(context.Background(), true,...

2019/11/12 17:55
1.3K

没有更多内容

加载失败,请刷新页面

返回顶部
顶部