精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2009-08-03
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2009-08-03
和实机速度差不多... 1M的XML要产生多少对象啊...
|
|
返回顶楼 | |
发表时间:2009-08-03
我算过,对象占用内存一共有800K左右。本来我是不想保留这个对象列表的。我在写一个词典程序,这个程序允许用户输入关键字进行词条的模糊匹配查询。词典的数据是我自己整理的,存在XML文件里面。我尝试过在用户输入关键字后,SAX解析遍历XML文件,但是慢,300K的XML文件要8秒,1M的XML文件一次根本解析不出来,只能分成多个文件,共耗时25秒。于是我尝试将数据存在数据库里面,用SQL查询,但是仍然慢,仍然是1M的数据,耗时10秒左右。于是我尝试干脆将所有数据加载到Activity里面,然后遍历内存对象,查询快了一点儿,5秒可以得到结果。仍然慢,可是已经是我能够实现的最快方法。
我下载了WordMate的程序在我的虚拟机里运行,比我的快多了……,几乎是即时出结果。要知道人家的词典里面有四五千的词汇而我的XML文件里面只有418个……,差距太大了…… 这是我第一次尝试在移动设备上写程序,我想知道1M的内存占用对Android可以接受吗?还有像WordMate那样的程序是如何执行检索的? |
|
返回顶楼 | |
发表时间:2009-08-03
我感觉实机比模拟器快一点。
上次写了个小东东,在模拟器上要三四秒,到实机上,最多两秒就开。 引用 还有像WordMate那样的程序是如何执行检索的?
俺也有这种问题,哪位做过的朋友指点一下。 估计他们用的都是自定义结构来保存数据在文件中的,像那个纯真IP库,lumaqq有写一篇文章说怎么解析,查询。那数据量也挺大的。 但让自己来怎么设计这自定义结构,没什么思路,网上也找不到相关文章。。 ![]() |
|
返回顶楼 | |
发表时间:2009-08-03
通常对大量数据查询可以利用到索引技术进行性能优化。估计人家的数据结构里就包含了索引。
|
|
返回顶楼 | |
发表时间:2009-08-03
是否使用了散列表?
人家能做到那么快,绝对不是靠循环或者是机器性能的,应该从算法上下功夫。记得上学的时候老师说过,字典程序用散列表的比较多。 |
|
返回顶楼 | |
发表时间:2009-08-04
查询大量数据当然是会建立索引的.
另外android每个app给16M内存, 你的1M txt 内容足够了 |
|
返回顶楼 | |
发表时间:2009-08-04
android在我电脑上的启动速度并不快,我想实体机的配置肯定不会有我的PC机快吧。
|
|
返回顶楼 | |
发表时间:2009-08-04
一定要注意内存大小啊,上次做了一个搜索本机所有图片的程序,在模拟器上没问题,在真机上就内存不够崩溃了.
|
|
返回顶楼 | |
发表时间:2009-08-04
还是要在数据结构和算法上下功夫,用xml和rdb在效率上绝对没有优势可言
|
|
返回顶楼 | |