Lentidão ao ler arquivo xml do cartão de memória do tablet

12 respostas
levimendes

Olá pessoal,

Eu tenho que ler um arquivo xml que se encontra no cartão de memória do tablet e jogar os dados em um bean e depois jogar esse bean em uma lista para depois percorrer a lista e persistir os beans na base de dados, até aí tudo bem, o problema é que a medida que o arquivo vai sendo lido, a leitura começa a ficar lenta demais, coloquei um log para imprimir os dados a medida que eles são lidos, o arquivo possui quase 100.000 linhas, essas 100.000 linhas totalizam aproximadamente 2.000 objetos (beans).

Quando eu inicio a leitura, o arquivo está sendo lido rápido, porém a velocidade da leitura vai caindo gradualmente, estou usando a biblioteca SAX para fazer a leitura.

Alguém sabe me dizer como solucionar esse problema de lentidão?

12 Respostas

E

Não dá para persistir à medida que você vai lendo, em vez de fazer esse processo sequencial de jogar tudo em memória?

CristianPalmaSola10

Leia um objeto monte a estrutura necessaria e persista o objto, e assim por diante, ficando menos objetos carregados em memoria.

levimendes

retornando a tarefa…

Olá CristianPalmaSola10 e entanglement,

Fiz o que vocês sugeriram, mas não obtive sucesso (a lentidão continua).

Será que o ‘problema’ é o cartão de memória que é lento?

Eu fiz uma aplicação java usando os mesmos recursos.
O programa não demoro nem 10 segundos para ler milhares de registros no xml.

CristianPalmaSola10

Pelo que parece a lentidao esta na leitura do arquivo que esta no cartão de memoria, diante de tal limitação de hardware acredito que naum tenha que seja possivel fazer

levimendes

Estou no mato sem cachorro…
Vou contar um pouco do problema…

Eu estou migrando um sistema do fox pró, para o android.
O sistema do fox pró utiliza a base de dados SQL Server.
Os caras criaram uma função no fox que lê os dados do banco da aplicação e cria um xml para cada tabela dessa base de dados.
Minha missão é ler os dados desse xml e inserí-los no SQLite do Android.
A princípio o que eu tinha feito para ler esses xmls foi deixá-los no servidor da empresa e acessá-los via http, porém estava recebendo uns erros de stackOverFlow,
então resolvi mover os xmls para o cartão de memória e ler a partir dele, agora estou tendo esse problema de lentidão.

Alguém conhece um caminho mais fácil para resolver essa tarefa?
Porque no momemto eu não faço idéia.

Grato, Levi.

j0nny

levimendes:
Estou no mato sem cachorro…
Vou contar um pouco do problema…

Eu estou migrando um sistema do fox pró, para o android.
O sistema do fox pró utiliza a base de dados SQL Server.
Os caras criaram uma função no fox que lê os dados do banco da aplicação e cria um xml para cada tabela dessa base de dados.
Minha missão é ler os dados desse xml e inserí-los no SQLite do Android.
A princípio o que eu tinha feito para ler esses xmls foi deixá-los no servidor da empresa e acessá-los via http, porém estava recebendo uns erros de stackOverFlow,
então resolvi mover os xmls para o cartão de memória e ler a partir dele, agora estou tendo esse problema de lentidão.

Alguém conhece um caminho mais fácil para resolver essa tarefa?
Porque no momemto eu não faço idéia.

Grato, Levi.

Pq não disponibilizar um WebService e ler paginadamente os dados?

levimendes

Olá , j0nny

Eu nunca trabalhei com WebServices,

Quais os passos para implementar um?
Quais serão as vantagens de se usar?
O que eu devo estudar para implementar?

Grato, Levi.

j0nny

levimendes:
Olá , j0nny

Eu nunca trabalhei com WebServices,

Quais os passos para implementar um?
Quais serão as vantagens de se usar?
O que eu devo estudar para implementar?

Grato, Levi.

https://www.google.com.br/search?hl=pt-BR&sa=X&ei=wzoIUKKPEaKc2QXNq82xBA&ved=0CF8QvwUoAQ&q=web+service&spell=1

levimendes

Você acha que eu não fiz isso espertão.

Eu só pedi a sua opinião porque pensei que você pudesse me dar uma visão geral dos caminhos a percorrer.

j0nny

levimendes:
Você acha que eu não fiz isso espertão.

Eu só pedi a sua opinião porque pensei que você pudesse me dar uma visão geral dos caminhos a percorrer.

Respeito é bom e todo mundo gosta.
Continue com essa sua atitude anti-ética e anti-profissional que ngm mais do fórum vai querer de ajudar.

levimendes

eu fui anti-ético…se olha no espelho

j0nny

Suas respostas falam por sí só. Enfim, tentei ajudar e fui tratado com desrespeito, por isso, retiro-me do tópico.

Criado 13 de julho de 2012
Ultima resposta 19 de jul. de 2012
Respostas 12
Participantes 4