RPRX

Results 745 comments of RPRX

21.3MB 是现在 geoip.dat 14.7MB 加 geosite.dat 6.6MB,不过它俩本身就有“压缩”,unmarshal 后会膨胀一些,没测算过膨胀的比例 不过 Xray 不是整个 unmarshal,而是先把这 21.3MB 读进内存,找到目标 categories 再 unmarshal,然后释放这 21.3MB,再跑代理 继续优化就是不一次性把 21.3MB 读进内存,但如我所说这样没什么意义,即使能先在 iOS 上跑起来了,后面跑代理的内存也不富裕

这里有数据:https://github.com/XTLS/Xray-core/issues/4348#issuecomment-2644521036 但我也说过:https://github.com/XTLS/Xray-core/issues/4348#issuecomment-2644521759 我觉得倒是可以看看 unmarshal 后的结构有没有优化空间

> 我觉得倒是可以看看 unmarshal 后的结构有没有优化空间 看了下,果然发现了大问题: https://github.com/XTLS/Xray-core/blob/be43f66b63d5fdc7322675127672cb5cbe14a125/app/router/config.pb.go#L138-L150 https://github.com/XTLS/Xray-core/blob/be43f66b63d5fdc7322675127672cb5cbe14a125/app/router/config.pb.go#L203-L213 ~~这下就很抽象了~~

@Fangliding 你试试把前三个 member 给删了并编译出来看看能少吃多少内存,还有 Domain Attribute 是干嘛的,实际有用到吗 而且它们的数组还是 `[]*router.Domain` 和 `[]*router.CIDR`,每条都多占个指针的内存

我试了下,直接把前三个 member 删了都能正常使用 geofiles

在路由使用 "geosite:cn" 的情况下,我的配置优化前静置内存占 15.1MB,优化后静置内存占 14.7MB 但是我发现了一个更严重的问题,如果 "geosite:cn" 出现了两次,内存占用会增加约 8MB 这应该是因为 `IPCache[index] = &geoip` 和 `SiteCache[index] = &geosite` 没有生效,我需要想下当初为啥是这样的决定。。。

> 我需要想下当初为啥是这样的决定。。。 应该是因为关缓存只需关 geofiles 的缓存,而不应该关 unmarshal 后的内容的缓存,结果当初一起关了 https://github.com/XTLS/Xray-core/issues/68#issuecomment-745165554 https://github.com/XTLS/Xray-core/issues/68#issuecomment-745231528 > 这个rule的大小是小问题吧 最后都要被编译成它AC自动机里的trie树的 不过按 @Fangliding 的说法,如果这里 rule 的大小无关,可能是 GC 不及时的问题?因为优化前后确实有区别 并且产生了新问题,如果像 `SiteCache[index] = &geosite` 这样的缓存没用,该怎么复用?~~需要深入研究下路由了~~ 还有我在想 unmarshal 时 IP 那个 []byte...

~~或许先让 @yiguous 研究下~~

Not Xray-core's bug

如果是代码 bug 会有 **大量报告**,否则就只是你的配置或其它与 core 无关的 problem,而 issue 区只用来处理 bug