采用内存映射办法。
首先,1千万条短信按现在的短息长度将不会超过1GB空间,使用内存映射文件比较合适,可以一次映射 (如果有更大的数据量,可以采用分段映射),由于不需要频繁使用文件I/O和频繁分配小内存,这将大大提高了数据的加载速度。
其次,对每条短信的第i(i从0到70)个字母按ASCII码进行分组,也就是创建树。i是 树的深度,也是短信第个字母。
这个问题主要是解决两方面的问题:
(1) 内容的加载,
(2)短信内容的比较。
采用内存映射技术可以解决内容加载的性能问题(不仅是不需要调用文件I/O函数,而且也不需要每读出一条短信都要分配一小块内存),而使用树技术可以有效地减少比较测次数。