通过缩短字段名节省firebase带宽?

通过缩短字段名节省firebase带宽?,firebase,Firebase,使用Firebase,我给字段提供了易于人类阅读的名称,如“时间戳”、“上次更改”、“消息方向”等 字段名是每个“行”的数据交换的一部分吗 意思是,我会通过缩短字段名来节省带宽吗?正如Frank指出的:是的,它们确实会影响带宽。然而,如果你计算一下,你会发现带宽很少值得付出努力和混淆,而且通常你的数据负载会大大超过密钥的几个额外字符 让我们考虑一个普通的聊天信息: { "sender": "typicaluserid:12345678901234567890", "timestamp":

使用Firebase,我给字段提供了易于人类阅读的名称,如“时间戳”、“上次更改”、“消息方向”等

字段名是每个“行”的数据交换的一部分吗


意思是,我会通过缩短字段名来节省带宽吗?

正如Frank指出的:是的,它们确实会影响带宽。然而,如果你计算一下,你会发现带宽很少值得付出努力和混淆,而且通常你的数据负载会大大超过密钥的几个额外字符

让我们考虑一个普通的聊天信息:

{
  "sender": "typicaluserid:12345678901234567890",
  "timestamp": 1410193850266,
  "message": "Hello world. All your base are belong to us!"
}
好的,首先让我们看看这个消息的有效载荷。这是163字节,UTF-8编码。如果我将键更改为无意义的三个字符ID(例如sdr、ts和msg),那么它将是149字节。对于事务开销,比如说40个字节,有了一些宽松的填充,大约可以节省2%,交换条件是需要rosetta stone来读取我的数据

接下来,让我们考虑带宽使用情况。如果我们有一个非常活跃、非常庞大的聊天系统(即,我们赚了很多美元),我们可能有10000个活跃用户平均每天发送50条消息。这意味着我们将每天发送

200字节*500k=100MB
的数据,或者每月发送大约
3GB的数据

这意味着我可以在Firebase的免费计划上轻松地支持一个大型聊天系统,而不会超过带宽限制


如果我们去掉这11个字节,我们就得到了
189*500k*30=2.8GB
。因此,这并不是一个显著的区别。

为了“横向思考”和“陈述明显的事实”,我花了几分钱:有时候,缩短时间可以带来带宽以外的好处。例如可读性、更容易打字、不太可能打字等

我建议花一些时间来寻找最简洁的名字,这仍然是可以理解的


/mrout

您可能可以节省一些带宽,但我怀疑它是否值得在可读性方面损失。如果您想查看Firebase发送/接收的内容,请设置
Firebase.enableLogging(true)在脚本的早期。您还可以使用
Firebase.INTERNAL.stats(firebaseRef)获得数据大小的指示。(请参阅和)此问题很老,因此可能已过时,但您的计算不包括执行写入和读取所需的HTTP请求。同样,我可能完全错了,但这将包括每条消息额外的约400-600字节。是这样吗?不是在WebSocket上,这是默认设置。当然,每个包的开销很小,写得很好。向上投票。数据被压缩了吗?()罗塞塔石头钻头让我大笑起来:“我帮了我很多忙,伙计,谢谢:)惊人的回答。是的,不值得headache@Kato访问深度嵌套布尔值和一级布尔值所消耗的带宽是否可观?例如:我有一个类似于
users/chats/events/random\u id\u dfdddffdfdfsffsdfdffszfdf/isOnline/
的路径,我正在考虑将其转换为更扁平的结构,如
online/uid
这会节省大量带宽吗?我平均每天为用户访问该路径100次