Telegram 是如何做到十几个万人群还是如此流畅的?

2023-07-26 08:29:16 +08:00
 airbotgo
1 、Android 、iOS 都非常流畅,除了 Web 网页版有时候略卡
十几个万人群,要做到这种流畅程度,有哪些值得学习的?

2 、本地缓存极少
设置本地缓存仅保存 1 周,所有内容存储云端。目前本地缓存总共占 300M 。

3 、多端同步
Android 、iOS 、Web 三端都在使用,同步做得非常好。它还包括 Windows 、Linux 、macOS 等客户端,如此多的平台支持,同步功能能做到如此程度,简直奇迹。

我的日常使用:
1 )聊天沟通;
2 )听歌(自己上传的音频);看 MV ( B 站收集的音乐视频);
3 )文件备份(中文搜索很烂,目前加标签、主动加分隔符号将就用);
4 )树洞(建个私有频道,写些乱七八糟的东西);
5 )结合 Tasker + 脚本,进行指定图片、短信的备份;

有没有大佬就 1 、2 个点分析下自己的见解,Telegram 有哪些值得学习的地方?
18110 次点击
所在节点    Telegram
98 条回复
nianyu
2023-07-26 22:43:51 +08:00
@liy333 张口就来
iseki
2023-07-26 22:54:46 +08:00
说真的,单看 IM 部分,我真没看出来微信哪里比 tg 先进🤣最多也只能说是吹得厉害;别的东西不要拿来比,那是 IM 么?
tg 的服务端没开源,但从蛛丝马迹上多少能看出来,频道的实现和大群的实现应该差不多,这俩本质上也没多大区别
BigShot404
2023-07-26 23:01:43 +08:00
多和用户交流装逼,少打高尔夫。事实证明,在公众面前装逼的确促进发展。
nexo
2023-07-27 00:01:27 +08:00
@dynastysea 语音视频聊天为啥手机那么烫呢 facetime 就没有 为啥 wx 那么占内存 求解读是什么技术导致这么厉害的
icaolei
2023-07-27 00:11:26 +08:00
@gosrider #21 Windows 11 23H2 刚刚试了下,Windows Store 版。
启动时 120M 左右。
打开币安 14 万人的群组 + 在花茶馆 4 万人的群组,内存 123M 左右。
然后我把全部的 17 个正经群组都开了一遍,基本都是几千人到几万人这种,内存 149M 左右。
liy333
2023-07-27 08:02:45 +08:00
@nianyu 胡言乱语
deadfishS
2023-07-27 08:38:25 +08:00
昨天才清掉 80 多 g 的缓存,也许是因为我加的都是各种浮力群
Edward5937
2023-07-27 10:12:07 +08:00
@a0000 我的意思是要在中国审查制度下的正常访问
ZeroDu
2023-07-27 10:43:24 +08:00
tg 上最多见过 20w 人的,确实不卡,全平台都不卡;
lgapple
2023-07-29 16:12:09 +08:00
@unafraid7580 微信怎么迁移到电报,微信非常垃圾但是因为垄断又没办法不用
Nerv
2023-07-31 16:56:20 +08:00
@dynastysea 微信这玩意到现在还没解决消息不一致的问题,手机上收到的消息电脑上不显示或只显示一部分,即使选了同步最近的消息也无济于事,对一个聊天软件来说,这点基本的东西都做不到,谈何简洁高效。
dynastysea
2023-07-31 23:31:42 +08:00
@Nerv 这个不算是 bug ,更多算是 feature ,微信有个机制就是服务端会确认客户端已收取的微信消息 ID ,已下发的不再会重复下发。多设备这个具体下发到什么时间点的消息微信倒也没公开具体的规则。所以这点用户其实会比较难理解。但这个不是技术层面的因素导致。
wkong
2023-08-02 22:43:53 +08:00
我们开源的就是仿 Telegram 的,从底层架构到 UI 。

https://github.com/TangSengDaoDao/TangSengDaoDaoServer
kuituosi
2023-08-03 12:44:11 +08:00
万人群的技术并不复杂,内容都是按需加载的。tg 技术真正牛逼的地方是多 idc 数据同步,不同地方人聊天依然很流畅
keenwon
2023-09-28 16:41:56 +08:00
它的消息收发原理简单到很多不懂技术的讲讲都能听得懂,但市面上很多的 IM 都把这套方案做的很复杂

@dynastysea 能讲讲吗?
dynastysea
2023-10-01 21:47:08 +08:00
@keenwon 每个用户都有自己的一个消息列表,可以简单理解为 ID 自增,无论单聊还是群聊都是往自己的消息列表里插入一条消息,收取消息只需要读取自己的消息列表即可。
silvernoo
77 天前
tg 不是简单的流畅,我跑到一台 2c8g 的虚拟机上,处理器是老奔腾,没有通显卡,流畅的像 native ,简直可怕
silvernoo
77 天前
更可怕的是我下载了上千个文件,理论上在一个队列里排队下载。然而我正在浏览的那个文件,就会被有限下载。这样的优化程度真没几个 app 做得到,不管国内还是国外的

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/959739

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX