guonaihong

Results 124 comments of guonaihong

@zedfaker 好了吗?

开启内核的延迟发送就行。应用层拼接性能没内核做得好。 ---原始邮件--- 发件人: ***@***.***> 发送时间: 2024年1月25日(周四) 上午9:37 收件人: ***@***.***>; 抄送: ***@***.***>; 主题: Re: [lesismal/nbio] 向大佬求助,如何用这个库写出生产者和消费者的代码结构? (Issue #385) 又想到一个问题,再请教下大佬, 如果发送给同一个conn的两条websocket消息,时间间隔很短(比如小于10毫秒),nbio库会不会把这两条消息合并为一条消息发送,然后,在这两条消息之间增加一个分隔符? 如果可以这样,可能会降低大并发时候的消息发送次数,我对nbio的底层不了解,我不知道这样可不可以提升大并发时候nbio库的性能。在实际业务场景中,有些消息是群发的,所以一个人可能会在很短的时间里收到多条消息。 — Reply to this email directly, view it on GitHub,...

@HanKiSei 感谢,我用下。

看你是国人。那就用中文回答了。当pcopy足够稳定的时候会默认启用预热。 我压测过,每次使用时都调用Preheat和Copy函数和单调Copy时间类似,因为预热函数会检查类型是否会有缓存,如果存在缓存就会直接跳过。 ```go pcopy.Preheat(&dst{}, &src{}) // 一对类型只要预热一次 pcopy.Copy(&d, &s, pcopy.WithUsePreheat()) ``` 所以对于你的需求来说,实现一个万能的高性能deepcopy函数。先检查是否实现DeepCopyGen接口,如果没有实现直接调用Preheat和Copy和启动预热实际是一样,只是多调用了一行代码。

> 支持, gout很好用. 这个项目也会关注的. 感谢关注。。

## TLS TLS support may come by the end of the year or it could be next year. greatws was developed in spare time, lacking sufficient time, so progress may...

> also, how to use so reuseport with this? https://github.com/antlabs/greatws-example/blob/master/reuseport/server/server.go https://github.com/antlabs/greatws-example/blob/master/reuseport/server/server.go#L67

> 感觉和nbio 比较像的一个库 发起greatws主要原因是和 lesismal 讨论websocket性能姿势,当然好像是说,标准库的实现方式会比kqueue/epoll快(低链接数时,比如1-2w链接数时)。 对于这个结论有点疑问,所以就写了greatws验证下。 实现完,也跑了几种不同的cpu。 对于这两种方式,在低功耗的cpu上,比如e5这种,基于kqueue和epoll的websocket库会比基于标准库的快些(80 go)。 在高功耗的cpu上,标准库的会快一点(1w go)。 https://github.com/antlabs/greatws/releases/tag/v0.1.7 (这是测试的数据) 有点跑题了 觉得像可能是都用了kqueue/epoll,不过代码不像,毕竟作者不是一个人。哈哈。

~~TODO: 需要定义一个接口, 空指针强转类型的方式检测.~~

泛型化key计算hash,先转成interface{},可以拿到那块内存区的地址和长度。直接暴力当成字符串计算。 https://github.com/antlabs/gstl/blob/master/cmap/cmap.go#L57 在我的玩具数据结构库是这么玩的。 这样大多数类型不需要定制hash函数,比较省力。