S novou verzí ta samá hláška u obou přístrojů a verzí Androidu.
A když už mám zprovozněný screen recorder, tak ještě na YT: zde
Publikováno 30 březen 2014 - 14:23
Hmm, hmm. Divné, zvláštní... Za chvilku mi dorazí přítelkyně, zkusím to na jejím čtyřkovém androidu..
Publikováno 30 březen 2014 - 15:01
To bude nejspíše ono, dotaz je náročnější, než kuřátkův: https://github.com/J...ivity.java#L284
Chtelo by to mit tu databazi, se kterou je to pomale, a zaroven vedet, jakou to pouziva presne verzi SQlite3. Na novejsich verzich, co tu mam ja, a na moji databazi mi to tu beha bleskove. I query plan vypada smysluplne. ale ve starsich verzich se query plan urcoval uplne jinak, takze nevylucuji, ze to tam blbne. Nicmene par postrehu mam:
1. proc v tom selectu delas kilometr dlouhy seznam sloupcu? Nestacilo by tam pouzit hvezdicku, kdyz si tam vybiras stejne skoro vsechno?
2. Pred ctenim dat zjistujes celkovy pocet vracenych zaznamu. Vzhledem k tomu, jak vyguje SQLite se svym jednosmernym cursorem, tak v tu chvili dojde k fyzickemu precteni vsech vyselectovanych zaznamu, a pravdepodobne se ulozi i nekam do pameti, aby sis tim pak mohl posleze prochazet. Nevim, jestli ten Sqlite wrapper v androidu umi i mnohem efektivnejsi zpusob, kdy si prectes 1 zaznam, zpracujes jej, a pak teprve prectes dalsi zaznam a ten predchozi si to nezapamatuje... a tak az na konec. V tu chvili by byl v pameti jen jeden zazna a ne vsechny najednou. Proste aby ten wrapper mel taky jednosmerny cursor bez bufferu.
3. Z ohledem na vyse popsane, by bylo zajimave vedet, kolik ti trva samotne zavolani db.rawQuery a kolik trva caches.getCount(); Treba se ten cas nabral tam. Dobre je si i zkontrolovat query plan pro jednotlive dotazy. To se dela tak, ze zavolas SQL "EXPLAIN QUERY PLAN SELECT blablabla..." a ono ti to vrati nekolikasloupcovou a nekolikaradkovou tabulku, kterou staci do nejakeho logu vypsat, a pak si zkontrolovat, jestli to pouziva spravneindexy, jestli se pracuje s tabulkami ve spavnem poradi, atd.
Publikováno 30 březen 2014 - 16:58
Tak záhada trvá dále, ale jistý pokrok už tu mám, už tu chybu dokážu taky nasimulovat. Problém je v tom, že když si aplikaci nainstaluji přímo do telefonu z vývojového prostředí, tak funguje vše jak má, když ji ale nechám vývojovým prostředím vygenerovat (*.apk) a to si nainstaluji, tak tam je ta chyba. Přitom se jedná o totožné zdrojové kódy... Tak kdyby někdo tušil o co jde...
HaLuMo díky, mrknu se to.
Jenom k té jedničce, jestli narážíš na řádky 272 a 274, tak při ne-importu nepotřebuji listing, hint aj. Selský rozum mi říká, že by to mělo být rychlejší a datově méně náročnější, než výběr všeho. A zadruhé, potřebuji tam ID keše. To se vyskytuje pod stejným názvem sloupce v obou joinovaných tabulkách, takže getString(caches.getColumnIndex("id"))mi pak nic nevracelo. Tato situace možná jde nějak ošetřit, nepátral jsem po tom nějak extra...
Publikováno 30 březen 2014 - 18:08
Pokud nepotrebujes listing ani hint, pak cely ten JOIN je uplne zbytecny (a pomaly), pak ti staci prachobycejny jednoduchy select na tabulku geocache, ne?
Jinak seznam slopupcu muzes dat klidne jako "geocache.id, *"
Publikováno 30 březen 2014 - 19:02
Máš pravdu, díky, toho jsem si nevšiml, join jsem dal taky podmíněný.
To provedení db.rawQuery() trvá od 0 do 1 ms. :-) getCount() už je horší, tam to bere stovky milisenkund a docela nezávisle na počtu záznamů (počet, doba v ms) - (23, 616 ms), (1749, 709 ms), (10, 406 ms), (355, 892 ms), ... Takže zkusím to poupravit, abych s tím pracoval optimálněji. Opět díky za tip.
Jinak se zdá, že už jsem ten problém alespon prozatím vyřešil - otestoval jsem instalaci stažením z odkazu s žádná chyba se nezjevila, tak prosím zkuste i vy. Díky
Publikováno 30 březen 2014 - 19:50
No, tak Stator pro dnesek snad hotov, tak se ted vrhnu na tebe
Publikováno 30 březen 2014 - 20:04
Při importu 20 logů mi to šlape takto:
Priprava: 1284 ms
Cyklus: 8843 ms
Celkem: 10128 ms
Nacitano kesi: 1261
Kesi za sekundu: 124.504074
Takže za mě spokojenost
Problém s importem 30 logů se zdá že je problém v locusu, tedy keše si mi načtou, ale již se nezobrazí okno kam importovat. Zkusím napsat menionovi
Publikováno 30 březen 2014 - 22:15
Hura, hlaska s filtrem uz funguje!
Publikováno 30 březen 2014 - 22:21
Super, už to mám potvrzeno od dvou lidí + dvě má různá zařízení. :-)
Ta chyba co hlásil georabbits.cz je fixnuta - v databázi měl uložen tag s počet FP, ale bez hodnoty. Opraveno i v aplikaci, aby s tím počítala.
Publikováno 31 březen 2014 - 6:42
Kdyz si otevru bod nacteny pres LiveMapu tak v zakladnim infu ukazuje polozka schovano aktualni datum - tedy datum vytvoreni bodu na mape LiveMapou a ne datum ukryti kese. Jen jsem si toho ted vsimnul, jinak vse jede jak ma. Parada - diky moc
Publikováno 31 březen 2014 - 9:16
To bude chyba Locusu, já to nastavuji dobře... předám o vlákno vedle. :-)
Publikováno 31 březen 2014 - 13:18
Nová verze 3.3.8!
Co je nového?
- možnost zadat rádiu v rozmezí 0.1-9.9 km nebo 10-999 km
Publikováno 31 březen 2014 - 19:59
Tak jsem zase trošku optimalizoval a na mém starém šmejdu Galaxy S s 2.3.3 jsem se dostal ze 43 keší/s na 60 keší/s. Na Sony Xperia M s androidem 4.1.2 jsem na rychlosti až 135 keší/s. (měřeno při načítání 1147 keší)
Při importu s 10 logy je to logicky pomalejší:
2.3.3 - 27 keší/s
4.1.2 - 48 keší/s
Také Live mapa by měla doznat určitého zrychlení.
Tato verze je online, stále označena jako 3.3.8.
Publikováno 03 duben 2014 - 14:41
3. 4. 2014 - Čtvrtek 15:36 - Nová verze 3.3.9
6. 4. 2014 - Neděle 23:17 - Nová verze 3.4.0
Co je nového?
- správné načítání data ukrytí a data poslední aktualizace
- zrušení výpisů s časy (případný chybový výpis do souboru ve složce Downloads zůstal)
- doplněny typy logů Un/Archive
- v3.4.0: přizpůsobení novému Locus API, z uživatelského hlediska nic nového
Aplikace je ke stažení na www.voldik.cz/geo/locus/LocusAddonGeoget.apk
Vypadá to, že zásadní problémy a neduhy jsou již odstraněny a tak bych již vše směřoval k tomu, aby tato verze již šla na Google Play. Prosím tedy o test, zda to dělá to, co chcete, aby to dělalo. :-)
TODO:
- naučit addon pracovat s databází obrázků *.imc
- umožnit zpětný zápis změn do databáze - závisí na Locus API, momentálně to neumožňuje
- umožnit filtrování vypočtených keší
Tento příspěvek byl upraven od Voldik: 07 duben 2014 - 12:37
Publikováno 03 duben 2014 - 15:14
Prosím tedy o test, zda to dělá to, co chcete, aby to dělalo. :-)
Takze to umi popcorn a lustit mysterky?
Publikováno 03 duben 2014 - 15:47
Takze to umi popcorn a lustit mysterky?
No to musíš právě otestovat. :-) Mně to třeba mysterky luští, stačí si tam nastavit tvoji databázi a hned můžu vyrazit do Pardubic
Publikováno 03 duben 2014 - 17:14
No to musíš právě otestovat. :-) Mně to třeba mysterky luští, stačí si tam nastavit tvoji databázi a hned můžu vyrazit do Pardubic
Jses si tim nejak moc jistej Vetsina z nich uz je stejne jinde. Ale bez popcornu tuhle apku nechci!
Publikováno 04 duben 2014 - 8:49
Sakra, ja se tu divim, proc to v tom Locusu tak blbne a az ted mi doslo, ze bych mohla pouzit taky testovaci verzi Locusu
0 uživatelů, 4 návštěvníků 0 anonymních uživatelů