数据结构内存映射或DB? (百万件)

我有一个数据结构基本上是一些计算方法,需要一个很长的时间(100毫秒)来计算,需要反复使用查找。 我有这些计算大约600万,希望将其加载到内存中时,我的应用程序启动(我会预先计算他们全部)。

现在的问题是,我可以存储这是一个内存映射文件(的东西字典)或者我应该将其存储在一个数据库,然后将其加载到RAM中的程序启动? 如何快速将二进制序列化是什么?

我有哪些选择?

--------------解决方案-------------

二进制序列化速度快,特别是如果你只有一次加载它。 从数据库加载速度实际上取决于数据的结构。 使用数据库的优点是易于管理。 如果你想轻松管理,变更,跟踪变更,或使用多个客户端这些值,那么数据库将是要走的路。 如果他们是永远不会改变,一个文件就足够了。

你必须尝试不同的方法和衡量自己。 有没有其他道路来解决性能问题。 需要注意的是,你需要有一些concreate目标记(如1负载/ 1毫秒为查找秒)。

选项​​:

  • 计算查找一些关于启动和sotre所有的值(预分配的数组/词典)
  • 计算在某些查询需求和sotre(预先分配的数组/词典)
  • 提前计算和负载压缩(注意,您有数据量较大时,将采取noticable 1-3秒的时间来加载)
  • 提前计算和按需加载
  • 预先计算并加载压缩数据

我已经recommned试图计算负载的所有值,看看它是否工作不够快 - 去最有可能的最简单的方法。

分类:C# 时间:2015-03-14 人气:0
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 0.751 (s). 10 q(s)