惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园 - 司徒正美
月光博客
月光博客
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
美团技术团队
WordPress大学
WordPress大学
罗磊的独立博客
Last Week in AI
Last Week in AI
人人都是产品经理
人人都是产品经理
爱范儿
爱范儿
MongoDB | Blog
MongoDB | Blog
J
Java Code Geeks
H
Hackread – Cybersecurity News, Data Breaches, AI and More
H
Help Net Security
S
SegmentFault 最新的问题
C
Check Point Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
腾讯CDC
Engineering at Meta
Engineering at Meta
The GitHub Blog
The GitHub Blog
F
Fortinet All Blogs
D
DataBreaches.Net
雷峰网
雷峰网
GbyAI
GbyAI
宝玉的分享
宝玉的分享

博客园 - 阿武

Moto G 通话没声音 Android 手机技巧 一个Java程序的生死旅程 精妙语录 【Windows Phone 7】【软件发布】深圳通助手 & 深圳长途汽车查询 & 深圳地铁通 [C++ Primer] Passing an array to a function by reference/pointers -- sample 【Ruby】删除旧文件 京东自动抢购机 64位的处理器支持多大的内存? 将.NET Entity Framework 的 Cache模块移植到JAVA平台 做快乐的程序员 Q 语言初学者系列:(3)Lists 初级 Q 语言初学者系列:(2)基本数据类型 Q 语言初学者系列:(1)开门篇 熟悉的感觉 盘点自己两年来走过的路 [JAVA]你见过这样的switch吗? - 阿武 - 博客园 网站上图片"另存为" 为什么是 bmp 格式 经实验, 网线两端都接在交换机上并不会烧毁交换机
KDB+性能分析:内存篇
阿武 · 2008-07-20 · via 博客园 - 阿武

      经过一个多星期的折腾终于搞定房子的事了,租到了一个还比较不错的单间,长这么大终于有一个属于自己的空间了,在这之前还在朋友那里寄宿了一个星期,也是长这么大第一次感觉到了“无家可归”的酸楚,每天下班后都不想回去,只是到处乱转,没有目的,转到时间差不多了就去吃饭然后回去那个不属于我的地方,当然还是特别感谢我的朋友的,幸亏有他们,要不这一星期都不知道要在哪座天桥下安家了。也是因为这样子,Q语言初学者系列暂时被耽搁了,虽然关心它的朋友并不多,但我还是想继续完成它,既然开始了,就总要有个结局。

     扯了一些题外话,下面开始进入今天的内容,KDB数据库相对于其它关系型数据库最大的优点就是效率高,特别是对于那些基于列的数据的运算表现更加出色,但它也并不是十全十美的,例如它是一个基于内存的数据库,这也就是说它的效率很大的一个原因就是依赖于数据在内存中的高速传输,这可比硬盘要快得多了。今天我就对它的内存占用率做了一个测试,使用的是开发版本,也就是32位版本,而且运行时间只能是2小时,所以这也是这个测试最多能完成的时间,当前使用的测试是每插入1000行做一次内存使用情况跟所消耗时间的记录,最终结果如下: 

     图中的蓝线代表的是数据库所占用的内存,红线代表的是数据库真正使用的内存,绿线表示每插入1000条数据所需要的时间。

     测试所使用的数据如下:

    

      从测试结果中我们可以看到数据库启动后会事先向操作系统申请60多M的内存,虽然这么多很多都是被闲置着的,但这么做的好处是当往里面添加数据的时候程序不需要再向操作系统申请内存,这节约了时间。测试发现只要数据量在50万行左右内存基本不会有增加,但如果还有新的数据添加进来,数据库又会一次性申请大量的内存,再接下去还是这样的操作,当数据达到350万行的时候,内存占用情况是400M左右。我想这还是一个可以接受的范围。再看下面的绿线,随着表中数据的不断增加,添加一行记录所需要的时间也在平滑地增长,这可不是什么好消息,不知道关系型数据库是不是也是这样的情况,这个还没有测试过。

     测试所使用的程序:

      1、KDB+数据库,测试所使用的是最新版本2.4;

      2、KdbTester 开发语言为C#,用于产生测试数据;

      3、KdbTestReporter 开发语言为JAVA,使用JFreeChart开源组件来生成报表。

另外 

测试机器的配置如下:
====================================
CPU:    Intel Core 2 Duo E4300
主板:   升技 AB9
内存: 金士顿 DDR2 667 1G x2
显卡:   影驰 GeForce 8600GT 魔灵
硬盘:   酷鱼7200.10 SATAII 8M 250G
电源: Tt 金刚450(W3009)
机箱:   航嘉 H001

操作系统是Vista sp1

为了不让等待的时间太过于无聊,所以自始自终机器都是边跑测试边放电影