2014-04-12 11 views
7

Po uruchomieniu przez bardzo długi czas (dzień lub dłużej) napisana przeze mnie aplikacja internetowa (JS/HTML5) zaczyna działać "dziwnie". Przede wszystkim przestaje wysyłać normalne dane, które powinien, do backendu, gdzie spodziewam się, że wysyła ~ 500kb danych, które zaczyna wysyłać tylko kilka bajtów nonsensu. Podejrzewałem, że jest to związane z pamięcią (niezdolne do przydzielenia pamięci czy coś takiego?) I kiedy zbadałem, zobaczyłem coś naprawdę dziwnego i pozornie niemożliwego, co sugeruje mi, że jest to błąd Chrome, który napotykam może przez użycie dużej ilości pamięci. Ale mógłbym użyć potwierdzenia od kogoś, kto wie lepiej niż ja.Nieparzysty wynik konsoli w Chrome, liczby ujemne w narzędziach deweloperskich pamięci na osi czasu, błąd przeglądarki Chrome?

Głównym dziwactwem wydaje się być to, co wypluwa console.memory. Połączony dokument mówi, że "usedJsHeapSize nie może być większa niż totalJsHeapSize", co jest bardzo, bardzo dużo. Jest to również wyższa niż limit rozmiaru sterty, które sobie wyobrazić, że nie powinno być:

Results of console.memory call

Potem próbował zobaczyć co DevTools może mi powiedzieć, a nie harmonogram pamięci w tej chwili, na kilka sekund i spójrz na to, co mówi ... pamięć waha się od jakiejś negatywnej, szalenie dużej liczby do 0B. To na pewno nie wydaje się właściwe.

Timeline of memory usage

I sprawdził chrome: // raportu pamięć i gdy jest go za dużo pamięci, porównując to do innych Chrome sesji przeglądania Mam zamiar nie wydaje się dziwaczne.

chrome://memory

Czy ktoś może potwierdzić, że jest to bug Chrome kontra oczekiwanego narzędzia dev zachowania nie będę tłumaczenia poprawnie.

Dzięki!

+0

Jesteś mówiąc: "Mam to, co jest dla mnie dziwne, zamierzam zachować to w tajemnicy przed tobą. Czy to dziwne?" "Tylko to, co jest tajemnicą", jest moją odpowiedzią. BTW: Moje bicie serca wynosi średnio 57 bpm, czyli mniej niż większość. Czy możesz potwierdzić, czy to dziwne? Jeśli tak nie jest, proszę wyjaśnij. Przepraszam, jestem niesprawiedliwy ... nie znasz mojego stanu zdrowia. –

+0

Ummm ... To na pewno nie było to, co zamierzałem zrobić, ani tego, co myślę, że zrobiłem. Pomyślałem tylko, że) nie jest prawdopodobne, że każdy, kto chce mi pomóc, chce się zarejestrować i uruchomić moje oprogramowanie przez ponad 24 godziny, aby zobaczyć, jak to działa, b) moje pytanie nie wymaga tego, ponieważ po prostu chcę wiedzieć, czy te numery pamięci mają jakikolwiek sens (są poprawne/prawne/możliwe) lub są dowodem na istnienie błędu przeglądarki Chrome, który prawdopodobnie wywoła. –

+0

Jeśli przekroczysz maksymalną liczbę, otrzymasz liczby ujemne. Jeśli twój skrypt nie zarządza skutecznie składowanymi obiektami, to nadal będzie się powiększał. Jest to normalne? Cóż, jeśli tak jest napisane, to twój skrypt. Bez zobaczenia kodu, nie ma sposobu, aby wiedzieć, co się dzieje. Pracowałeś przez 24 godziny, ale najprawdopodobniej skrypt zostanie przyspieszony w celu wykonania procedur znacznie szybciej i powielenia problemu, pomagając zidentyfikować przyczynę. Mamy teraz opis symptomów problemu bez możliwości jego analizy ... stąd tajemnicza powieść. –

Odpowiedz

3
  • Wartości bucketed aby zapobiec atakom side-channel
  • bucketing opisane tutaj: http://goo.gl/fFspKO
  • Get dokładnych liczb z flagą Chrome: --enable-precyzyjne-Pamięć-info
Powiązane problemy