Próbuję obliczyć rozmiar wiadomości w bazie firebase, aby dokładnie oszacować koszt mojej aplikacji.Obliczanie rozmiaru wiadomości Firewalla
Zauważyłem przy uruchomieniu, że kalkulator bazy danych w czasie rzeczywistym pokazywał większe niż oczekiwane rozmiary danych. Aby to sprawdzić, zacząłem aplikacji zabawka, która ma jeden ref nazwie „test” z danymi:
{"foo": "bar"}
dzieje innych odpowiedzi, mój szacunek jest to, że te dane są poniżej 20 bajtów.
Odzyskiwanie danych z tego kodu:
firebase.database().ref("test").once("value", function(snapshot) {
console.log(snapshot.val());
});
Oto jsfiddle showing this toy example.
Łapię ref i console.log danych. Mam dostęp do tego przykładu poniżej 10 razy. Kiedy patrzę na zakładkę wykorzystania bazy danych w czasie rzeczywistym na zabawce, pokazuje ona coś w rodzaju przepustowości 30KB.
Jakie inne dane są wysyłane na konto dla tej dużej luki w oczekiwanym zużyciu danych (10 * 20 bajtów = 200 bajtów) w porównaniu z faktycznymi 30 KB wysłanymi?
Czy jest jakiś początkowy narzut podczas inicjowania aplikacji, która zwiększa wykorzystanie danych?
EDIT:
Za radą cartant, w Zalogowałem ramki wysyłane z websocket. Oto co znalazłem (Zanim to widzę pewne wiadomości inicjalizacji około 200 bajtów):
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
Więc wydaje się, że jest tam ~ 200-250 bajt napowietrznych dla każdej wiadomości. Czy ktoś może to potwierdzić? To nadal nie wyjaśnia w pełni wspomnianej wcześniej luki (10 wiadomości * 250 bajtów = 2,5 KB w porównaniu z 30 KB zarejestrowanymi).
UPDATE:
aktualne zużycie pasma wynosi 155 KB. Nie jestem pewien, w jaki sposób ta liczba jest możliwa dzięki 35 widzom w tym poście. Aby spróbować uzyskać poczucie to (ja wciąż nie jestem pewien, jak przepustowość jest faktycznie wyliczone), tutaj są moje myśli:
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.
więc dostać się do 155 KB albo ten został wysłany znacznie więcej niż 100 razy lub jest jakiś niewyjaśniony narzut. Zakładam również (co nie wiem), że narzut do zainicjowania wynosi 200 bajtów, a narzekanie na wysłanie dowolnej wiadomości wynosi 200 bajtów.
Jeśli używasz przeglądarki Chrome, możesz obserwować rzeczywisty ruch internetowy za pomocą narzędzi programistycznych. Może się przydać. – cartant
Tak, mamy ten sam problem: http://stackoverflow.com/questions/41471842/why-does-the-firebase-bandwidth-keep-increasing-for-no-reason?noredirect=1#comment70152399_41471842 – Coder1000
Ten sam problem tutaj również: http://stackoverflow.com/questions/38959321/firebase-database-bandwidth-usage-growing-rapidly-even-when-the-database-is?rq=1 – shell