利用数据缓存机制提高智能设备应用程序的数据访问性能

原创 2007年09月24日 20:07:00

刚看了 Chris Tacke 的《Improving Data Access Performance with Data Caching》一文,回想起以前做过的一些项目,对数据缓存在提高数据访问性能方面的作用颇有感受,跟大家分享一下。
我们在开发 MIS 项目时,要跟各种业务和数据在打交道。其中数据可以根据它们的用途,分为业务数据和参考数据两种。业务数据是业务的信息载体,如:采购进货单、销售出货单、盘点单等。参考数据是业务数据组成部分,如:度量单位、颜色、城市等。参考数据在英文里面通常叫 Lookup Data 或 Reference Data,它们是在系统中使用频率很高的一类数据。因此,这类数据的访问性能将会影响整个系统的用户体验。那么,如何提高 lookup data 的访问性能呢?
Chris Tacke 在他的文章中分析了三种数据访问方式。前两种访问方式差不多,主要区别在于:第一种在每次访问数据库时都会打开和关闭数据库连接;而第二种是在系统缓存一个数据库连接对象,每次使用后不关闭它。我相信大家都会认为第二种方式在频繁访问数据库时性能更优,因为打开一个数据库连接是比较耗系统资源的。然而结果却让人出乎意料,这两种方式的性能很接近,甚至第二种方式性能还更好。

测试结果1:

Device

Processor

Mean Execution (ms)*

OLDI SAM-L8

800MHz Geode x86

7.5 to 9.5

iCOP eBox 2300

200MHz Vortex86

47 to 52

Dell Axim x51

416MUz Intel PXA270

38 to 62


测试结果2:

Device

Processor

Mean Execution (ms)

OLDI SAM-L8

800MHz Geode x86

7.1 to 14.8

iCOP eBox 2300

200MHz Vortex86

51 to 52

Dell Axim x51

416MUz Intel PXA270

43 to 61


第三种方式利用数据缓存机制,在第一次获取数据时,将数据加载到一个Hashtable中,然后再返回。以后就直接从缓存获取数据。第三种方式的性能跟前面两种相比差了十万八千里呀!

Figure 1

测试结果3:

Device

Processor

Mean Execution (ms)

OLDI SAM-L8

800MHz Geode x86

0.0193 to 0.0201

iCOP eBox 2300

200MHz Vortex86

0.1014 to 0.1164

Dell Axim x51

416MUz Intel PXA270

0.0975 to 0.1437

在以前做过的一些项目中,也是采用了类似的缓存机制来提高数据访问性能,效果确实明显。不过,要特别注意缓存数据的更新问题!在更新了数据库中的 lookup data 时,别忘了内存中的缓存数据也需要更新。

Chris Tacke 的文章还提供示例代码和PDF格式下载:
Download the Source Code
Download the PDF

另外,Chris Tacke 说他们在那个项目中还开发了一个运行在 Windows CE 的轻量级 ASP.NET Web 服务器,用来展现报表,在后续文章中会详细介绍它的实现,期待ing...  

MFC开发智能设备的总结

 原文链接:http://blog.csdn.net/citybug_nj/article/details/2598705 程序中包括四个部分: 系统配置 这个部分用来配置系统中的相关...
  • ljsant
  • ljsant
  • 2016年07月05日 09:55
  • 207

《机器学习实战》学习笔记:利用Adaboost元算法提高分类性能

Adaboost是一种迭代算法,其核心思想是针对同一个训练集训练不同的分类器,即弱分类器,然后把这些弱分类器集合起来,构造一个更强的最终分类器,比起弱分类器,这个“强”分类器的错误率会低很多。...
  • liyuefeilong
  • liyuefeilong
  • 2015年10月08日 22:30
  • 2345

如何提高数据库访问性能

特别说明: 1、  本文只是面对数据库应用开发的程序员,不适合专业DBA,DBA在数据库性能优化方面需要了解更多的知识; 2、  本文许多示例及概念是基于Oracle数据库描述,对于其它关...
  • u010327174
  • u010327174
  • 2014年10月16日 16:35
  • 1759

智能家居第一步: WiFi 设备怎么连上网

智能家居第一步: WiFi 设备怎么连上网 字数1341 阅读236 评论0 喜欢1 拿起手机打开软件就可以远程使用智能设备,是不是起来很酷炫。实际使用的效果如何,将手机和设备第一次连...
  • li_yangyang_li
  • li_yangyang_li
  • 2016年04月03日 15:03
  • 4369

智能设备是如何连接云的

在IoT时代,智能设备连接上云是基本功能。那么设备是如何连接上云的呢?智能设备连接云简单来说可以分为两步,第一步连接Internet,第二步连接云。连接Internet设备连接Internet的方式有...
  • hoolev
  • hoolev
  • 2015年08月12日 10:58
  • 2064

数据库数据处理性能提升技术

一、数据处理性能存在的问题1、企业的数据都集中存储在数据库中,从海量的数据中查找和定位数据是非常耗时的; 2、数据集中存储后,所有用户都要来访问数据库,当很多用户同时访问数据库时,数据库服务器的负载...
  • dingding_12345
  • dingding_12345
  • 2016年01月07日 10:57
  • 5437

程序性能优化探讨(2)——循环展开优化详议

循环展开优化详议
  • u013471946
  • u013471946
  • 2014年11月01日 15:33
  • 1793

解决阻塞读入设备数据问题

#include #include int main(void) { char buf[10]; int n; n = read(STDIN_FILENO, buf, 10); ...
  • juan08030701
  • juan08030701
  • 2016年03月28日 19:40
  • 214

提高存储性能的十大方案

优化存储容量还是优化存储性能?假设只能二选一的话,大多数存储管理员也许会选择前者。说到性能问题,我们随手就可以找到大量的关于优化存储性能的秘籍,但这些技巧或方法并不总是那么有效,还要看现实的应用环境。...
  • yazhiye
  • yazhiye
  • 2014年09月17日 10:33
  • 1983

提高应用程序启动性能

CLR 全面透彻解析 提高应用程序启动性能 Claudio Caldato   目录 冷启动  确定从磁盘加载的代码  系统程序集和其他进程  NGen ...
  • QQ276592716
  • QQ276592716
  • 2013年07月15日 13:42
  • 1590
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:利用数据缓存机制提高智能设备应用程序的数据访问性能
举报原因:
原因补充:

(最多只允许输入30个字)