V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  guonaihong  ›  全部回复第 8 页 / 共 23 页
回复总数  459
1 ... 4  5  6  7  8  9  10  11  12  13 ... 23  
2020-06-30 10:12:24 +08:00
回复了 MoTao 创建的主题 程序员 如何使用系统调用函数 open、close、read、write 等实现 cp 功能?
不就是用 creat 创建目标文件,open 源文件,然后用 read 读源文件到 buffer 里面,然后用 write 把 buffer 数据写到目标文件里面,最后 close, close 。
估计 8 行代码就搞定(只实现核心功能)。
2020-06-29 10:53:05 +08:00
回复了 guonaihong 创建的主题 Go 编程语言 高性能定时器,基于 5 级时间轮实现。fast,fast,fast
@tcfenix 哈哈,利害厉害,你记性好。
2020-06-22 16:32:43 +08:00
回复了 guonaihong 创建的主题 Go 编程语言 gin 里面有解码客户端 gzip 数据的中间件吗?
@useben 感谢,原来实现在另外一个文件里面。
2020-06-22 16:32:17 +08:00
回复了 guonaihong 创建的主题 Go 编程语言 gin 里面有解码客户端 gzip 数据的中间件吗?
@kappa 感谢。看测试代码是可以。
2020-06-22 16:17:28 +08:00
回复了 guonaihong 创建的主题 Go 编程语言 gin 里面有解码客户端 gzip 数据的中间件吗?
@useben 感谢,我看过这个中间件的源代码,他是对响应结果进行压缩的,他是把普通包变为 gzip 。我要的是解码,把 gzip 包,变为普通包。
了解下 WithContext 。我在 gout 里面的超时就是用这个 API 实现的。context 可超时取消,可以调用 cancel 取消。
这是官方 WithContext 的文档
https://golang.google.cn/pkg/net/http/#Request.WithContext

## 这是 gout 里面使用 WithContext 的例子
https://github.com/guonaihong/gout/blob/master/_example/05b-cancel.go
2020-06-18 19:26:11 +08:00
回复了 guonaihong 创建的主题 Go 编程语言 高性能定时器,基于 5 级时间轮实现。fast,fast,fast
@ifconfig 感谢支持。。。
2020-06-17 18:58:03 +08:00
回复了 guonaihong 创建的主题 Go 编程语言 高性能定时器,基于 5 级时间轮实现。fast,fast,fast
@songjiaxin2008 5 级是对现实世界,ms, s, m, h, d 的近似值,比如一分钟等于 60s(60 刻度),为了方便方便位移操作选了 64(2 的 8 次方)的刻度。
2020-06-17 18:53:53 +08:00
回复了 guonaihong 创建的主题 Go 编程语言 高性能定时器,基于 5 级时间轮实现。fast,fast,fast
@vus520 哦,哈哈。curl 库又加了很多选项支持。
你搜索下 dma 。不过要看网卡是否支持。
2020-06-16 16:24:25 +08:00
回复了 guonaihong 创建的主题 Go 编程语言 高性能定时器,基于 5 级时间轮实现。fast,fast,fast
@reus go1.14.4
goos: linux
goarch: amd64
pkg: benchmark
Benchmark_antlabs_Timer_AddTimer/N-1m-16 14327593 77.1 ns/op
Benchmark_antlabs_Timer_AddTimer/N-5m-16 16078015 80.0 ns/op
Benchmark_antlabs_Timer_AddTimer/N-10m-16 16101303 86.5 ns/op
Benchmark_RussellLuo_Timingwheel_AddTimer/N-1m-16 5994146 195 ns/op
Benchmark_RussellLuo_Timingwheel_AddTimer/N-5m-16 6636303 190 ns/op
Benchmark_RussellLuo_Timingwheel_AddTimer/N-10m-16 6803047 198 ns/op
Benchmark_ouqiang_Timewheel/N-1m-16 861498 1670 ns/op
Benchmark_ouqiang_Timewheel/N-5m-16 685520 1724 ns/op
Benchmark_ouqiang_Timewheel/N-10m-16 695408 1685 ns/op
Benchmark_Stdlib_AddTimer/N-1m-16 6622006 185 ns/op
Benchmark_Stdlib_AddTimer/N-5m-16 7021538 187 ns/op
Benchmark_Stdlib_AddTimer/N-10m-16 7219875 170 ns/op
PASS
ok benchmark 104.387s
2020-06-16 16:24:04 +08:00
回复了 guonaihong 创建的主题 Go 编程语言 高性能定时器,基于 5 级时间轮实现。fast,fast,fast
@reus 请看看下压测项目,有 go 1.14.4
@u823tg 哈哈。。。下次可以玩 rust 。
@johng 是的。
@prenwang 也感谢你的使用,哈哈。。。
@wysnylc 看过你的留言,哈哈,你不是用 java 的吗。。。
@lasuar 感谢支持。。。
2020-05-20 13:03:51 +08:00
回复了 fishofcat 创建的主题 Go 编程语言 刷题断断续续
按 tag 玩。
go 有指针,实在没必要所有类型都是引用。
想要引用,无非 type 加个*。指针这个大杀器已经给你,就看你怎么玩了。
2020-05-17 16:35:22 +08:00
回复了 guonaihong 创建的主题 Go 编程语言 向繁琐的赋值代码说不。deepcopy.Copy 深度拷贝来了
@Kisesy 要支持 dst, src 不对称指针拷贝,要有个好的算法解决循环引用的问题(结构体里面有环路),deepcopy 现在用的算法,是记录指针地址。并且因为 deepcopy 是深度拷贝,要取引用 struct 。如果要支持不对称指针,遇到下面的代码就 gg 了,当然现在是没问题的。coven 是指针浅拷贝,有时间不会解引用,所以不要操这份心.
type R struct {
R *R
}

r := R{}
r.R = &r
1 ... 4  5  6  7  8  9  10  11  12  13 ... 23  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2650 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 29ms · UTC 07:13 · PVG 15:13 · LAX 23:13 · JFK 02:13
Developed with CodeLauncher
♥ Do have faith in what you're doing.