V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  monsterxx03  ›  全部回复第 3 页 / 共 24 页
回复总数  468
1  2  3  4  5  6  7  8  9  10 ... 24  
2021-03-06 22:30:26 +08:00
回复了 simple2025 创建的主题 Go 编程语言 关于 golang 内存的问题
10M 左右对 go 来说并不多.

就你这个程序, 我尝试编译跑了一下, 一个目录里只有两个文件, 无新写入, 内存占用在 7M 左右
用 pmap 看了下, 3M 多是从 binary 里映射出来的 (不用 urfave/cli 估计能少 2M). go 的 gc 要等到 heap 增长到一定 size 才会触发

GODEBUG=gctrace=1 ./gtail --pattern xxx

可以看到 log:

gc 1 @164.953s 0%: 0.055+0.85+0.016 ms clock, 0.44+0.50/0.67/0.21+0.13 ms cpu, 4->4->0 MB, 5 MB goal, 8 P

在程序运行 164s 后触发了第一次 gc, 回收了 4M 的 heap 内存, 但你看到的 rss 并不会直接减少, runtime 会复用这段内存, 所以最后 rss 稳定在 7M 多.

python 跑一个没任何变量分配的死循环也要占用 7M 多, go 不到 1M. 你没给出 python 的代码, 不好说.

并没有 go 一定比 python 省内存这种说法, 完全取决于你的 workload, python 的引用计数+mark&seep 方式, 在简单代码里完全可能比 go 的 gc 省内存.
2021-03-02 12:02:22 +08:00
回复了 awanganddong 创建的主题 Redis redis hash 与 string 适用场景
就用户信息这个 case, 不需要 ttl.
如果内存占用问不是问题, 建议用 string.
减少内存是你的头号问题, 考虑用 hash, key 的 overhead 更少.
hash 问题是如果以后迁移到 redis cluster, 所有 key 会在一个 slot 里, 分布不均匀
2021-02-23 10:37:24 +08:00
回复了 bbbai 创建的主题 问与答 TCP/IP 协议支持全双工的一些疑惑
比如 http2 的 multiplexing , 在同一个 tcp connection 上跑多个 stream, 好处是减少了 latency(只需要一次连接建立), 坏处是单 connection 用不上多核, 很注重吞吐量的场景还需要在这之上实现一个线程池.
2021-02-21 21:26:50 +08:00
回复了 fangwenxue 创建的主题 Python aws dynamodb update 问题
2021-02-20 14:48:59 +08:00
回复了 DelayNoMay 创建的主题 问与答 多少的资金量可以全职炒股?
来问这问题就很奇怪, 能做到多少收益率只有你自己知道, 需要多少钱能覆盖生活支出也只有你自己知道, 两个一算就知道需要多少钱了, 问别人干什么
其实互联网业务一般是不会这么实现的, 要么程序完全无状态, 本地不存储任何东西, 带状态的程序要么数据 sharding 到多个节点上去, 要么就是单节点存储.

你得说说具体的业务, 就算在单机上, 多个进程访问同一个文件也是有问题的(并发控制, 一致性...)
多个 pod 同时挂载同一个 pv 需要底下的具体实现支持 multiple access mode, https://kubernetes.io/docs/concepts/storage/persistent-volumes/#access-modes
2021-02-08 15:24:06 +08:00
回复了 stevenkang 创建的主题 编程 梳理陈年老系统遇到的一些神奇写法,欢迎品鉴
写傻了, 这种用 sonarqube 扫一下都能直接检查出来的.

话说 null 放前面是从 C 里带来的习惯, C 里 if (a=1) {} 能编译过的, 但逻辑是不对的.
楼上阅读理解都有问题吧,lz 不是禁止小孩看电视, 是要纠正凑太近的习惯
2021-01-29 13:38:16 +08:00
回复了 ianshow15 创建的主题 投资 今天你跑了吗?
指数调整5个点都没到,就不行了, 18 年连跌 11 个月....这一波挺好的, 洗洗那些借钱买基的, 不然后面更惨
2021-01-29 10:58:04 +08:00
回复了 awanganddong 创建的主题 Go 编程语言 go 热更新的简单可行的解决方案
以为是楼主, 忘了 @lewis89
2021-01-29 10:55:05 +08:00
回复了 awanganddong 创建的主题 Go 编程语言 go 热更新的简单可行的解决方案
README 里有个连接讲原理. 其实就是 nginx 那套, spawn 一个新的子进程加载 elf binary, 复制 fd, 接管新流量, 老的进程会等待一个 graceful timeout 的时间把已接收的请求处理完, 你是消息队列消费者的话就要确保 task 能在这个时间内被处理完否则会被强制 kill. 和 k8s 还是有区别的, k8s 是在 kube-proxy 那层完成的流量切换, 没这么 tricky, 功能更强(可以实现红绿部署).

你说兼容栈帧那套单进程内热更新我很确定 go 是没有的,这个需要语言 runtime 支持, 印象里只有 erlang 支持, 而且限制性很大, 好处也就是能保留内存缓存.
2021-01-29 09:53:43 +08:00
回复了 awanganddong 创建的主题 Go 编程语言 go 热更新的简单可行的解决方案
2021-01-26 18:42:34 +08:00
回复了 polarpy 创建的主题 问与答 想问下自动分析网页,获取 xpath 有什么好的方案吗?
chrome 里右键 inspect, 在 console 上对应元素上再右键 Copy -> Copy XPath
1  2  3  4  5  6  7  8  9  10 ... 24  
关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   2635 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 30ms · UTC 07:55 · PVG 15:55 · LAX 23:55 · JFK 02:55
♥ Do have faith in what you're doing.