我想计算firebase中的消息大小,以便准确估计我的应用程序的成本。计算firebase消息大小
我注意到运行时实时数据库计算器显示的数据大小比预期的大。为了验证这一点,我启动了一个名为“测试”数据的单一裁判玩具应用:
{"foo": "bar"}
你打算在其他的答案,我的估计是,这个数据是根据20个字节。
与此代码检索数据:
firebase.database().ref("test").once("value", function(snapshot) {
console.log(snapshot.val());
});
这里是一个jsfiddle showing this toy example。
我抓住ref和console.log的数据。我已经访问了10次这个例子。当我查看玩具应用程序的实时数据库使用情况标签时,它显示了使用30KB带宽的情况。
正在发送什么其他数据来解决预期数据使用量(10 * 20字节= 200字节)与实际发送的30KB之间的这种巨大差距?
当初始化添加到数据使用情况的应用程序时是否有一些初始开销?
编辑:
继cartant的建议,我登录从WebSocket的发送帧。以下是我发现(在此之前我看到大约200字节的一些初始化消息):
Data Length
{"t":"d","d":{"r":22,"a":"q","b":{"p":"/test","h":""}}} 55
{"t":"d","d":{"b":{"p":"test","d":{"foo":"bar"}},"a":"d"}} 58
{"t":"d","d":{"r":23,"a":"n","b":{"p":"/test"}}} 48
{"t":"d","d":{"r":22,"b":{"s":"ok","d":{}}}} 44
{"t":"d","d":{"r":23,"b":{"s":"ok","d":""}}} 44
所以好像有任何消息了〜200-250字节的开销。任何人都可以确认吗?这仍然不能完全解释我之前提到的差距(10条消息* 250字节= 2.5 KB,相对于30 KB记录)。
UPDATE:
当前的带宽使用率高达155 KB。我不确定在这篇文章中35位观众如何获得这个数字。为了想方设法把这种感觉(我现在还不能确定带宽实际上是如何计算的),这里是我的想法:
200 bytes to initialize/connect
220 bytes per message (200 bytes of overhead + 20 bytes in message)
100 times sent (this is probably an overestimate, as there are 35 views on this post, but I have viewed it around 10 times myself)
(200 bytes + 220 bytes) * 100 views = 42000 bytes or 42 KB.
所以去155 KB要么这是多发的100倍以上,或者有一些无法解释的开销。另外,我假设(我不知道)初始化的开销是200字节,发送任何消息的开销是200字节。
如果您使用的是Chrome,您可以使用开发工具观察实际的websocket流量。你可能会觉得它很有用。 – cartant
是的,我们有同样的问题:http://stackoverflow.com/questions/41471842/why-does-the-firebase-bandwidth-keep-increasing-for-no-reason?noredirect=1#comment70152399_41471842 – Coder1000
同样的问题在这里以及:http://stackoverflow.com/questions/38959321/firebase-database-bandwidth-usage-growing-rapidly-even-when-when-the-database-is?rq=1 – shell