c – Windows上最快的小型数据存储

我的应用程序跟踪大约1000个对象的状态.这些对象以无特定顺序从持久存储(序列化)读取和写入.

现在,应用程序使用注册表来存储每个对象的状态.这很好,因为:

>很简单
>它非常快
>可以读取/写入单个对象的状态,而无需读取更大的实体(例如从大型XML文件提取片段)
>有一个像样的编辑器(RegEdit),可以轻松操作单个项目

话虽如此,我想知道是否有更好的方法. sqlite似乎是一种可能性,但是您没有使用注册表获得的同一级别的多读者/多作者,并且没有简单的方法来编辑现有条目.

有更好的建议吗?一堆平面文件

解决方法:

如果您开始尝试使用sqlite,您应该知道“开箱即用”它可能看起来不像您想要的那么快,但通过应用一些已建立的优化提示可以快速快速度:

SQLite optimization

根据数据的大小和可用的RAM量,通过将sqlite设置为使用全内存数据库而不是写入磁盘,可以获得最佳性能提升之一.

对于内存数据库,将NULL作为文件名参数传递给sqlite3_open和make sure that TEMP_STORE is defined appropriately

另一方面,如果你告诉sqlite使用硬盘,那么你将获得与当前RegEdit使用相似的好处来“动态”操作程序的数据.

使用sqlite模拟当前RegEdit技术的方法是使用sqlite命令行工具连接到磁盘数据库.您可以在主程序运行时(和/或在中断模式下暂停时)从命令行对sql数据运行UPDATE语句.

相关文章

Windows2012R2备用域控搭建 前置操作 域控主域控的主dns:自...
主域控角色迁移和夺取(转载) 转载自:http://yupeizhi.blo...
Windows2012R2 NTP时间同步 Windows2012R2里没有了internet时...
Windows注册表操作基础代码 Windows下对注册表进行操作使用的...
黑客常用WinAPI函数整理之前的博客写了很多关于Windows编程的...
一个简单的Windows Socket可复用框架说起网络编程,无非是建...