Wiem, że Android ma zapakowany parser JSON, ale zastanawiałem się, czy warto było użyć czegoś, co zapewnia lepszą wydajność (np. Jackson - zobacz http://jackson.codehaus.org/)? Ktoś próbował tego?Zastąp standardowy analizator składni JSON Androida, aby uzyskać lepszą wydajność?
Odpowiedz
Oto couple z porównując wydajność Jackson JSON z istniejącymi JSON, SAX i buforami protokołów. Według autora, Jackson jest szybszy niż SAX lub wbudowany JSON i mniej więcej na poziomie z buforami protokołów. Ta ostatnia część brzmi trochę podejrzanie, ale niezależnie od tego z pewnością wygląda na to, że Jackson działa na Androida i może być wart niektórych eksperymentów.
Nie sprawdziłem jednak rozmiaru JAR. Jeśli jest olbrzymi, chyba że umierasz za dodatkową wydajność JSON, może nie być warta trafienia kosmosu.
Tak, rozmiar pliku jest zdecydowanie na mojej liście możliwych ograniczeń. Sądzę, że gdybym żuł dużo JSON w mojej aplikacji, to może warto dodać Jacksona, ale na razie trzymam się standardowego JSON-a. – Eno
Późna odpowiedź, ale nadal może pomóc. Używam Jacksona do analizowania JSON'a z Twittera, a także do utrzymywania bazy danych w postaci Maps
. Mapowanie danych w Jackson jest po prostu cudowne. Możliwość odwzorowania JSON bezpośrednio na obiekt jest niesamowita i sprawia, że wszystko jest dużo czystsze.
Nawet jeśli analizowane są tylko proste odpowiedzi, mapowanie danych może pomóc w oczyszczeniu kodu (i bardziej wydajnego). Dla mnie jest to darem niebios, że nie muszę pisać logiki parsującej dla każdego typu funkcji Twitter API.
Dzięki za informację zwrotną - świetnie mieć inne narzędzie w skrzyni, jeśli to konieczne. – Eno
Jeszcze jedna perspektywa na te parsery. Przeglądałem Google IO na rok 2009 i naprawdę miło jest mówić o efektywnym korzystaniu z baterii dla twórców aplikacji.
Oto link do tej rozmowy: link
Teraz jak na talk wbudowanym proboszcza dla Androida jest drzewo oparte a te mają być nieskuteczne, jeśli chodzi o żywotność baterii. Czy ktoś naprawdę się temu przyjrzał.
Czytając tę dyskusję, wydaje się, że parser Jackson wydaje się być zwycięzcą we wszystkim. Jest prawie równie szybki, jeśli nie bardziej niż wbudowany, a także oparty na Event/Stream w przeciwieństwie do drzewiastych, co jest lepsze pod względem zużycia baterii.
Po prostu chciałem się podzielić i zdobyć kilka opinii na ten temat.
Używam json json do realizacji mojej aplikacji na Androida, która komunikuje się z serwerem za pośrednictwem json-rpc. Chciałbym użyć tego do serializowania/deserializacji żądań i odpowiedzi json-rpc oraz obiektów do przesyłania danych. Używam wersji 2.0 Jackson-json. W ścieżce do budowy umieściłem dwa słoiki: jackson-databind-2.0.0.jar, jackson-core-2.0.0.jar i jackson-adnotations-2.0.0.jar.
Na marginesie: Czy są jakieś implementacje json-rpc dla Androida. oddzielny ruch json-rpc i http byłby dobry. Dużo googlowałem, ale nie znalazłem dobrego generatora json-rpc, serializatora/deserializera jsona, a do transportu będę używał androida.
Ponieważ API 11, istnieje stream json parser w Androidzie
Dzięki! Nie zauważyłem, że tam był, ponieważ nie było go w pakiecie JSON – christophercotton
- 1. Standardowy analizator składni JSON dostarczany w pakiecie z językiem Java
- 2. Analizator składni JSON w PascalScript
- 3. W jaki sposób Google Dart może uzyskać lepszą wydajność?
- 4. Niestandardowy analizator składni JQuery Tablesorter
- 5. Analizator składni akceptujący identyfikatory Scala?
- 6. Kiedy firma Akka osiągnie lepszą wydajność?
- 7. Co powinienem użyć, aby uzyskać lepszą wydajność, dziewięcioszynkowe lub szufladowe zasoby xml?
- 8. Czy krótkie instrukcje mają lepszą wydajność?
- 9. Siatka i StackPanel, który ma lepszą wydajność?
- 10. Zagnieżdżony analizator składni logicznej za pomocą ANTLR
- 11. Analizator składni i analizator JavaScript w języku C# .NET 4.5
- 12. Analizator składni How To in .NET
- 13. Jakie biblioteki należy użyć, aby uzyskać lepszą obróbkę OCaml?
- 14. Jak utworzyć analizator składni AST, który dopuszcza błędy składni?
- 15. Analizator składni SPARQL dla kodu Java
- 16. Najlepszy analizator składni dla języka C#?
- 17. Plik wcięcia Vima dla Treetop (analizator składni)
- 18. Analizator składni ANTLR z ręcznym lexerem
- 19. pisać rekursywny analizator składni z pyparstwem
- 20. Android niestandardowy analizator składni XML nie rozpoznaje przestrzeni nazw Android
- 21. Czy istnieje dobry lekki analizator składni HL7 dla języka Java?
- 22. Zastąp domyślną serializację JSON WCF
- 23. Sencha Touch 2 - Wydajność Androida
- 24. Czy INNER JOIN oferuje lepszą wydajność niż EXISTS
- 25. Dlaczego Angular 2 ma lepszą wydajność niż Angular 1?
- 26. który ma lepszą wydajność:! Test = null lub wartość null = test
- 27. Podświetlanie składni Androida?
- 28. Jak skonfigurować analizator składni XML, aby wyłączyć zewnętrzną rozdzielczość jednostki w C#
- 29. Który analizator składni mikrodanych powinien być używany w Pythonie
- 30. Lekki analizator składni SAX XML w języku C++
Nigdy nie miałem problemów z prędkością Android parsera JSON. Mam nawet plik JSON o pojemności 41kb w jednej z moich aplikacji i ładuje się go w kilkaset ms na G1 (co jest w porządku, ponieważ wystarczy uruchomić tylko raz, gdy uruchomi się aplikacja). –
Bezwzględna prędkość mowy może być akceptowalna. Nadal dobrze jest wziąć pod uwagę, że na zwykłych procesorach stacjonarnych prędkość przetwarzania JSON jest rzędu dziesiątek megs - plik 41 kb zostałby wykonany w ciągu milisekundy.Nawet w przypadku wolniejszych procesorów, które często ma system Android, sto milisekund jest raczej powolne w stosunku do szybkich alternatyw. Tak, odpowiednie narzędzie do pracy. Do codziennego użytku (jak czytanie w pliku konfiguracyjnym przy starcie) wbudowane programy obsługi są zazwyczaj przyzwoite. Wciąż dobrze jest wiedzieć, że jest miejsce na polepszenie, jeśli wymagają tego przypadki użycia. – StaxMan