Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

建议适当平衡加载速度和搜索速度 #125

Open
JYRowe opened this issue Dec 11, 2024 · 12 comments
Open

建议适当平衡加载速度和搜索速度 #125

JYRowe opened this issue Dec 11, 2024 · 12 comments
Labels
enhancement New feature or request

Comments

@JYRowe
Copy link

JYRowe commented Dec 11, 2024

背景

加载需要至少 10s,有亿点慢。

需求

适当缩短加载时间(可以稍延长搜索时间)。

实现细节

例如进入网站时先加载一部分常搜/高排名的数据,其余均摊到每次搜索中。(不太懂细节)

@JYRowe JYRowe added the enhancement New feature or request label Dec 11, 2024
@neooier
Copy link
Contributor

neooier commented Jan 12, 2025

'常搜/高排名' 相关优化似乎完全无法实现...?大家不大可能一直集中搜索某个人。如果动态维护的话服务器成本难以忽略。

@yhx-12243
Copy link
Member

这个时间主要来源于数据源在 “.github.io” 国内访问较慢,并不在于计算时间,加载的文件通常就是一个几十 B 的 Hash 值。

@JYRowe
Copy link
Author

JYRowe commented Jan 12, 2025

这个时间主要来源于数据源在 “.github.io” 国内访问较慢,并不在于计算时间,加载的文件通常就是一个几十 B 的 Hash 值。

然而这边使用魔法秒上油管(3s 内加载完毕),上 OIerDB 也需要 10s 是什么情况

@renbaoshuo
Copy link
Member

题外话:我这边 Youtube 都是 0.5s ~ 1s 的加载时间,3s 说实话太慢了。

  1. OIerDb 在初始化信息时会尝试从多个数据源同时请求,并使用最快应答的数据源来完成加载。
  2. 为了保证数据的时效性,对于存储 hash 值的文件我们并没有引入国内 CDN 来进行加速。
  3. 在手机等 CPU 较慢的设备上,OIerDb 的数据处理事实上也是需要消耗一定时间的。

您方便提供一下加载过程中卡住时间最长的进度百分比吗?

@JYRowe
Copy link
Author

JYRowe commented Jan 12, 2025

稳定到可怕的 8% 。

@JYRowe
Copy link
Author

JYRowe commented Jan 12, 2025

刚刚那个是装了一堆插件的 chrome,我试了试没啥插件的 edge,上油管 3s,OIerDB 10s,卡在 8%(第一次是 9X%,但是具体数字忘了/qd)

@renbaoshuo
Copy link
Member

卡在 8% 的原因应该是你的设备 CPU 速度太慢了,导致面对数万条获奖记录和选手信息数据的时候处理耗时较长。

@JYRowe
Copy link
Author

JYRowe commented Jan 12, 2025

image

不懂就问,这样的 CPU 是不是很菜?

@yhx-12243
Copy link
Member

yhx-12243 commented Jan 12, 2025

看来 js 常数还是有亿点大了,线性跑 1e5 就吃力了
(一方面是使用 wasm 优化,不过这样控制台的高级处理会处理才不方便,不过倒问题不大,再想想)

@renbaoshuo
Copy link
Member

image

我这个配置,大概数了下要 6s 才能完全加载。

数据量大是这样的。为了后续查询的快速,只能在加载时间上做一些牺牲。

我之前倒是有过做前后端结合查询的想法,奈何手上没有这么多服务器资源能够拿来使用……

@yhx-12243
Copy link
Member

一个优化倒是,可以先把输入框弄出来,在这段时间内可以先操作起来,然后结果栏等着,来点统筹

另外我这边要 2s ~ 2.5s

@JYRowe
Copy link
Author

JYRowe commented Jan 12, 2025

为什么只有我的电脑这么菜

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

4 participants