V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  dbow  ›  全部回复第 21 页 / 共 24 页
回复总数  477
1 ... 13  14  15  16  17  18  19  20  21  22 ... 24  
2015-12-10 12:44:39 +08:00
回复了 dbow 创建的主题 程序员 golang 经验交流, 如何避免 gc 杀手
@tiancaiamao
C 语言指针可以乱跑就没 hack 这回事, 我讲的是 go 里要实现如下模式, 需要 hack
enter function
malloc -> new
自动 free -> delete
leave function
2015-12-10 12:37:08 +08:00
回复了 dbow 创建的主题 程序员 golang 经验交流, 如何避免 gc 杀手
@cloudzhou
如果能实现下面这种模式, 问题也是可以解决的, while {malloc, free}, 这样内存耗用就相对较小, 不会 malloc 堆在一起又占内存而且一下 gc 造成巨大的延迟。
```gol
enter function
malloc -> new
自动 free -> delete
leave function
```
2015-12-10 12:07:31 +08:00
回复了 dbow 创建的主题 程序员 golang 经验交流, 如何避免 gc 杀手
@cloudzhou 除了做一些底层的 dirty hack, 针对各种 golang 的内置对象, 你有什么办法用 golang 的 api 接口实现这个吗?
```golang
enter function
malloc -> new
自动 free -> delete
leave function
```
2015-12-10 11:56:47 +08:00
回复了 dbow 创建的主题 程序员 golang 经验交流, 如何避免 gc 杀手
@cloudzhou
while { readline, 每次都分配内存而且不归我管的函数}, 我讲的是 gc 对这种情况反应不行,
也就是下面的情况做不到.
enter function
malloc -> new
自动 free -> delete
leave function
```
```go
package main

func main() {
b := make([][]byte, 3000000)
for i := 0; i < 3000000; i++ {
buffer := make([]byte, 1024)
copy(buffer, []byte("abcd"))
b[i] = buffer
}
}
```
```shell
gc1(1): 1+0+33224+1 us, 0 -> 68 MB, 21 (21-0) objects, 2 goroutines, 16/0/0 sweeps, 0(0) handoff, 0(0) steal, 0/0/0 yields
gc2(1): 0+2+29460+1 us, 68 -> 68 MB, 22 (23-1) objects, 3 goroutines, 16/0/2 sweeps, 0(0) handoff, 0(0) steal, 0/0/0 yields
gc3(1): 0+8+29552+0 us, 68 -> 137 MB, 104710 (139608-34898) objects, 3 goroutines, 8808/0/0 sweeps, 0(0) handoff, 0(0) steal, 0/0/0 yields
gc4(1): 0+881+29664+1 us, 136 -> 136 MB, 69814 (139608-69794) objects, 3 goroutines, 8808/0/8803 sweeps, 0(0) handoff, 0(0) steal, 0/0/0 yields
gc5(1): 0+10+30403+0 us, 136 -> 273 MB, 278374 (417688-139314) objects, 3 goroutines, 26255/0/0 sweeps, 0(0) handoff, 0(0) steal, 0/0/0 yields
gc6(1): 0+2650+30961+0 us, 272 -> 272 MB, 208854 (417688-208834) objects, 3 goroutines, 26255/0/26250 sweeps, 0(0) handoff, 0(0) steal, 0/0/0 yields
gc7(1): 0+15+31651+0 us, 272 -> 545 MB, 624366 (971704-347338) objects, 3 goroutines, 61016/0/0 sweeps, 0(0) handoff, 0(0) steal, 0/0/0 yields
gc8(1): 0+5795+32788+0 us, 543 -> 543 MB, 485862 (971704-485842) objects, 3 goroutines, 61016/0/61011 sweeps, 0(0) handoff, 0(0) steal, 0/0/0 yields
gc9(1): 0+23+33831+0 us, 543 -> 1086 MB, 1313658 (2075432-761774) objects, 3 goroutines, 130267/0/0 sweeps, 0(0) handoff, 0(0) steal, 0/0/0 yields
gc10(1): 0+12912+35999+0 us, 1082 -> 1082 MB, 1037726 (2075432-1037706) objects, 3 goroutines, 130267/0/130262 sweeps, 0(0) handoff, 0(0) steal, 0/0/0 yields
gc11(1): 1+39+39331+1 us, 1082 -> 2164 MB, 2686898 (4274328-1587430) objects, 3 goroutines, 268233/0/0 sweeps, 0(0) handoff, 0(0) steal, 0/0/0 yields
gc12(1): 0+28420+41711+0 us, 2155 -> 2155 MB, 2137174 (4274328-2137154) objects, 3 goroutines, 268233/0/268228 sweeps, 0(0) handoff, 0(0) steal, 0/0/0 yields
```
2015-12-09 22:17:55 +08:00
回复了 dbow 创建的主题 程序员 golang 经验交流, 如何避免 gc 杀手
停喷, 结贴。
2015-12-09 17:58:07 +08:00
回复了 dbow 创建的主题 程序员 golang 经验交流, 如何避免 gc 杀手
@dbow
while {readline} 不建内存池这种模式下, 10 亿行文本, 吃内存嗖嗖的, 慢点是没有关系的.
2015-12-09 17:50:52 +08:00
回复了 dbow 创建的主题 程序员 golang 经验交流, 如何避免 gc 杀手
@pathletboy
性能不是关键问题, 随着 objects 越来越多, 进程内存越占越多, gc 的回收效果不好才是个大麻烦。
2015-12-09 17:26:40 +08:00
回复了 dbow 创建的主题 程序员 golang 经验交流, 如何避免 gc 杀手
@pathletboy
@mengzhuo
@tiancaiamao
我其实是想讨论下怎么把内存释放掉, 内存池只是避免通过 gc 的方案
c 里有 malloc , free 成对, 成对使用就可以保持内存消耗相对较小
golang 里就不一样, 一路 malloc, 什么时候 free 是不确定事件, 最后内存使用越来越大, 不可控制。
2014-11-16 14:38:14 +08:00
回复了 dbow 创建的主题 Linux 分享 Linux 64 位汇编, timeit.asm 给需要的人.
@reverland nasm 里global表示对外公开的符号, gas写里作globl, 汇编器语法的差异容易克服, 基本不影响写代码, 可以轻松转换。
2014-11-15 21:15:13 +08:00
回复了 canky 创建的主题 VPS 为什么我的 LINODE VPS 是 root@(nane):~#这个模式
2014-11-15 16:09:21 +08:00
回复了 dbow 创建的主题 Linux 分享 Linux 64 位汇编, timeit.asm 给需要的人.
@reverland 推荐用yasm, 它完全兼容gas, nasm。 gas, nasm稍微有些不同, 比如表示src, dst的顺序相反
2014-11-13 17:13:34 +08:00
回复了 dbow 创建的主题 Linux 分享 Linux 64 位汇编, timeit.asm 给需要的人.
@nevernet 不懂C破不了。
2014-11-07 09:45:51 +08:00
回复了 lane0x 创建的主题 程序员 Linux 汇编如何使用系统调用
2014-10-24 17:59:52 +08:00
回复了 dbow 创建的主题 Python windows 下 python 文件编码的问题
@jun4rui 啥?
2014-10-24 12:55:34 +08:00
回复了 dbow 创建的主题 Python windows 下 python 文件编码的问题
@VYSE 补充一点,实现上python不转换这个,fileobject的write方法调用fwrite, 是底层的C运行时搞的。
2014-10-24 10:55:22 +08:00
回复了 dbow 创建的主题 Python windows 下 python 文件编码的问题
@Jaylee @kidlj @happywowwow 我重点是说open在windows与linux下行为是不一致的, 二者有差所以是个坑, 讨论到此为止,不然又要成水贴了。
2014-10-24 09:20:24 +08:00
回复了 dbow 创建的主题 Python windows 下 python 文件编码的问题
@clino 我期望python能让内置函数在在windows下与linux下的行为完全一致的。
2014-10-24 09:06:33 +08:00
回复了 dbow 创建的主题 Python windows 下 python 文件编码的问题
@Delbert 主要是说在linux下可以不加,在windows下一定得加,这两个是不同的。
2014-10-24 09:00:57 +08:00
回复了 dbow 创建的主题 Python windows 下 python 文件编码的问题
@limbo0 在linux下面不加b也正常,这就是个不完全跨平台的例子。
2014-10-24 08:48:56 +08:00
回复了 dbow 创建的主题 Python windows 下 python 文件编码的问题
@Delbert 确实是问题,我刚遇到的, 不加b图片就乱码。
1 ... 13  14  15  16  17  18  19  20  21  22 ... 24  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3410 人在线   最高记录 6543   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 22ms · UTC 14:02 · PVG 22:02 · LAX 07:02 · JFK 10:02
Developed with CodeLauncher
♥ Do have faith in what you're doing.