- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在尝试计算 Firebase 中消息的大小,以便准确估算我的应用的成本。
我在运行时注意到实时数据库计算器显示的数据量大于预期。为了验证这一点,我启动了一个玩具应用程序,它有一个名为“test”的引用和数据:
{"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)。
更新:
当前带宽使用量高达 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 字节。
最佳答案
我已经运行了更多测试(读取 22 个字节)并认为在计算带宽时可能存在错误。如果不是,则重新加载时的带宽速率非常大。这是我的测试:
Test 1 (600 requests of 22 bytes with only one initial connect to the page)
83 KB total for 600 requests
83 KB = 83,000 bytes / 600 requests = 138.33 bytes per request
data sent = 22 bytes
138.33 bytes - 22 bytes = 116.33 bytes overhead per message sent
这是合理且相当不错的(尽管这似乎没有在 firbase 的定价页面上考虑在内)。
我在等待一个半小时后运行了第二个测试,以便实时数据库使用情况可以更新。
测试 2 包含我认为可能是错误的内容:
Test 2 (20 page reloads sending one request)
96 KB total for 20 page reloads + 20 requests
96 KB / 20 = 4.8 KB per reload
我不认为这是正确的,这使我相信实时数据库的数据使用部分存在错误。我注意到刷新时使用的数据会增加大约 2-4kb(我只存储了 22 个字节)。
我很确定这个用例很容易重现。我不会赞成这个,因为它不是真正的答案,它只是提出了更多问题,但这是我在运行这些测试用例时发现的。
谢谢
关于javascript - 计算 firebase 消息大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41457341/
SQL 和一般开发的新手,我有一个表(COUNTRIES),其中包含字段(INDEX、NAME、POPULATION、AREA) 通常我添加一个客户端(Delphi)计算字段(DENSITY)和 On
我想使用 calc(100%-100px),但在我的 demo 中不起作用由于高度只接受像素,因此如何将此百分比值转换为像素。 最佳答案 以下将为您提供高度: $(window).height();
我正在尝试在 MySQL 中添加列并动态填充其他列。 例如我有一张表“数字”并具有第 1 列、第 2 列、第 3 列,这些总数应填充在第 4 列中 最佳答案 除非我误解了你的问题,否则你不只是在寻找:
我想返回简单计算的结果,但我不确定如何执行此操作。我的表格如下: SELECT COUNT(fb.engineer_id) AS `total_feedback`, SUM(fb.ra
我一直在尝试做这个程序,但我被卡住了,我仍然是一个初学者,任何帮助将不胜感激。我需要程序来做 打印一个 10 X 10 的表格,其中表格中的每个条目都是行号和列号的总和 包含一个累加器,用于计算所有表
这个计算背后一定有一些逻辑。但我无法得到它。普通数学不会导致这种行为。谁能帮我解释一下原因 printf ("float %f\n", 2/7 * 100.0); 结果打印 1.000000 为什么会
我想计算从 0 到 (n)^{1/2} - 1 的数字的 AND每个数字从 0 到 (n)^{1/2} - 1 .我想在 O(n) 中执行此操作时间,不能使用 XOR、OR、AND 运算。 具体来说,
如何在 Excel 中将公式放入自定义数字格式?例如(出于说明目的随机示例), 假设我有以下数据: 输入 输出 在不编辑单元格中的实际数据的情况下,我想显示单元格中的值除以 2,并保留两位小数: 有没
每次我在 Flutter 应用程序中调用计算()时,我都会看到内存泄漏,据我所知,这基本上只是一种生成隔离的便捷方法。我的应用程序内存占用增加并且在 GC 之后永远不会减少。 我已将我的代码简化为仅调
我有数字特征观察 V1通过 V12用于目标变量 Wavelength .我想计算 Vx 之间的 RMSE列。数据格式如下。 每个变量“Vx”以 5 分钟的间隔进行测量。我想计算所有 Vx 变量的观测值
我正在寻找一种使用 C 语言计算文件中未知字符数的简单方法。谢谢你的帮助 最佳答案 POSIX 方式(可能是您想要的方式): off_t get_file_length( FILE *file ) {
我正在使用 Postgres,并且我正试图围绕如何在连续日期跨度中得出第一个开始日期的问题进行思考。例如 :- ID | Start Date | End Date =================
我有一个订单表格,我在其中使用 jQuery 计算插件来汇总总数。 此求和工作正常,但生成的“总和”存在问题。总之,我希望用逗号替换任何点。 代码的基础是; function ($this) {
我在使用 double 变量计算简单算术方程时遇到问题。 我有一个具有 double 属性 Value 的组件,我将此属性设置为 100。 然后我做一个简单的减法来检查这个值是否真的是 100: va
我在这里看到了一些关于 CRC 32 计算的其他问题。但没有一个让我满意,因此是这样。 openssl 库是否有任何用于计算 CRC32 的 api 支持?我已经在为 SHA1 使用 openssl,
当我在PHP日期计算中遇到问题时,我感到惊讶。 $add = '- 30 days'; echo date('Y-m-01', strtotime($add)); // result is 2017-
我正在使用 javascript 进行练习,我编写了这个脚本来计算 2 个变量的总和,然后在第三个方程中使用这个总和!关于如何完成这项工作的任何想法都将非常有用! First Number:
我有一个来自EAC的提示单和一个包含完整专辑的FLAC文件。 我正在尝试制作一些python脚本来播放文件,因为我需要能够设置在flac文件中开始的位置。 如何从CueSheet格式MM:SS:FF转
这个问题已经有答案了: Adding two numbers concatenates them instead of calculating the sum (24 个回答) 已关闭去年。 我有一个
4000 我需要上面字段 name="quantity" 和 id="price" 中的值,并使用 javascript 函数进行计算,并将其显示在字段 id= 中仅当我单击计算按钮时才显示“总
我是一名优秀的程序员,十分优秀!