V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  Nazz  ›  全部回复第 10 页 / 共 45 页
回复总数  896
1 ... 6  7  8  9  10  11  12  13  14  15 ... 45  
357 天前
回复了 iqoo 创建的主题 程序员 有没有不依赖 OpenSSL 的 HTTPS 请求学习代码
看 golang 标准库
358 天前
回复了 zenfsharp 创建的主题 程序员 各位大佬已经开始用 Podman 了吗
@ixiaohei 没必要用 desktop ,gui 浪费内存
@keepRun 我打算试试 OpenObserve ,Rust 写的,采集程序可以用 iLogTail ,连 Kafka 都省了
@bthulu 你猜为什么很多公司不愿意用 ELK
公司不允许用盗版软件, goland 自带的 datatrip 比免费数据库 ui 都强.
2023-12-25 20:02:33 +08:00
回复了 matrix1010 创建的主题 Go 编程语言 Otter, 兼具高性能与高命中率的内存缓存
读多写少也是 mutex 更快
2023-12-25 17:48:15 +08:00
回复了 matrix1010 创建的主题 Go 编程语言 Otter, 兼具高性能与高命中率的内存缓存
otter 最近又优化了吧, 看 benchmark 混合读写速度非常惊人, 我把最小堆去掉估计也赶不上

goos: linux
goarch: amd64
pkg: github.com/lxzan/memorycache/benchmark
cpu: 13th Gen Intel(R) Core(TM) i5-1340P
BenchmarkMemoryCache_SetAndGet-4 17393630 79.82 ns/op 0 B/op 0 allocs/op
BenchmarkOtter_SetAndGet-4 36321264 29.74 ns/op 0 B/op 0 allocs/op
BenchmarkRistretto_SetAndGet-4 5968552 179.7 ns/op 32 B/op 1 allocs/op
BenchmarkTheine_SetAndGet-4 5518321 237.0 ns/op 0 B/op 0 allocs/op
PASS
ok github.com/lxzan/memorycache/benchmark 27.342s
2023-12-20 15:01:12 +08:00
回复了 Nazz 创建的主题 Go 编程语言 怎么优化红黑树区间查询
@cchq 一个递归方法搞定, 从 1809 ns/op 提高到了 883 ns/op

// 降序遍历 中序遍历是有序的
func (c *RBTree[K, V]) rangeDesc(curNode *rbtree_node[K, V], qb *QueryBuilder[K, V]) {
if c.end(curNode) || len(qb.results) >= qb.limit {
return
}

state := 0
if qb.rightFilter(curNode.data.Key) {
state += 1
}
if qb.leftFilter(curNode.data.Key) {
state += 2
}

switch state {
case 3:
c.rangeDesc(curNode.right, qb)
if len(qb.results) < qb.limit {
qb.results = append(qb.results, *curNode.data)
} else {
return
}
c.rangeDesc(curNode.left, qb)
case 2:
c.rangeDesc(curNode.left, qb)
case 1:
c.rangeDesc(curNode.right, qb)
default:
}
}
2023-12-19 21:39:44 +08:00
回复了 Nazz 创建的主题 Go 编程语言 怎么优化红黑树区间查询
@kneo @cchq

感谢二位, 已经搞定了
在我现有逻辑上稍微改下就行了, 利用中序遍历一次得到多个结果, 减少重复计算. 原来 LIMIT N 要查 N 次, 现在最坏才是 N 次.
2023-12-19 14:55:58 +08:00
回复了 Nazz 创建的主题 Go 编程语言 怎么优化红黑树区间查询
@cchq 只了解最基本的性质。左子结点比父节点小,右子结点比父节点大
2023-12-19 14:35:01 +08:00
回复了 Nazz 创建的主题 Go 编程语言 怎么优化红黑树区间查询
@kneo ok ,我先去了解一下中序遍历的特性
2023-12-19 14:31:01 +08:00
回复了 Nazz 创建的主题 Go 编程语言 怎么优化红黑树区间查询
@cchq 不从根节点开始找的话,可能会漏掉一些数据,有排序的
2023-12-19 13:40:58 +08:00
回复了 Nazz 创建的主题 Go 编程语言 怎么优化红黑树区间查询
@MoYi123 调用次数多了会很慢,大量重复计算
2023-12-19 13:40:06 +08:00
回复了 Nazz 创建的主题 Go 编程语言 怎么优化红黑树区间查询
@kneo 如果条件范围比较小,全部查出来再排序是个好办法
1 ... 6  7  8  9  10  11  12  13  14  15 ... 45  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2167 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 22ms · UTC 16:12 · PVG 00:12 · LAX 08:12 · JFK 11:12
Developed with CodeLauncher
♥ Do have faith in what you're doing.