nostr_dev on Nostr: 晚上花了几个小时调查这个问题,最后绕了过去: ...
晚上花了几个小时调查这个问题,最后绕了过去: 从shell中定时执行,这样泄漏问题不解决也问题不大. 弄好之后下去走两步,结果一下楼就想到了,可能不是底层库有bug,而是我用错了!
go-nostr库的 SimpleRelayPool使用完之后不能傻傻地等着GC回收资源,而是要自己主动close掉relay!
回来后一测试,果然如此!持续运行,goroutine不会持续增长了!
内存虽然略有增长,但感觉应该还算正常,不像是之前那样增长很快,而且只增不减了.
pidstat --human -r -p 20 128
间隔20秒种,输出指定进程ID的CPU 内存使用情况,重复执行128次
非常简易的检测进程内容使用情况的命令
发现了一个Go小工具的内存泄漏.
Published at
2023-08-25 13:32:31Event JSON
{
"id": "fc7f407774ab75b62e0868f02ad6954c053fb75a0e4ed1ecca293dbe8a75d6ba",
"pubkey": "f0eab82c761167393a15e0a6194b0f1f278b175ed2ac642d7677e9a7b86773e6",
"created_at": 1692970351,
"kind": 1,
"tags": [],
"content": "晚上花了几个小时调查这个问题,最后绕了过去: 从shell中定时执行,这样泄漏问题不解决也问题不大. 弄好之后下去走两步,结果一下楼就想到了,可能不是底层库有bug,而是我用错了!\ngo-nostr库的 SimpleRelayPool使用完之后不能傻傻地等着GC回收资源,而是要自己主动close掉relay!\n回来后一测试,果然如此!持续运行,goroutine不会持续增长了!\n内存虽然略有增长,但感觉应该还算正常,不像是之前那样增长很快,而且只增不减了. nostr:note14ccgzp7ky3qf2tj947dtcp0gxye94svahnqg6yvrzwfmvxg2xnlq889lxy",
"sig": "c45e8ed49f52c686fc9a4bcd31c025fddf0767e2aa6c645f243efe9438688510d8571a776d0374669ed1644bfbd32d557d603bde3e800a2f22337c1d5a44c540"
}