我有一个数据结构,它本质上是一些计算的查找,需要花费很长时间(100毫秒)来计算并且需要反复使用。我有大约6,000,000个这些计算,并希望在我的应用程序启动时将它们加载到内存中(我会预先计算它们)。
问题是我可以将其存储为内存映射文件(某事物的字典),还是应该将其存储在数据库中,然后在程序启动时将其加载到ram中?二进制序列化的速度有多快?
我有什么选择?
答案 0 :(得分:3)
二进制序列化很快,特别是如果你只需加载一次。数据库的加载速度实际上取决于数据的结构。使用数据库的优点是易于管理。如果您想轻松管理,更改,跟踪更改或将这些值与多个客户端一起使用,那么数据库就是您的选择。如果它们永远不会改变,那么文件就足够了。
答案 1 :(得分:2)
你必须尝试不同的方法并自己衡量。没有其他途径可以解决性能问题。请注意,您需要考虑一些concreate目标(例如1秒加载/ 1ms查找)。
选项:
我建议尝试计算负载上的所有值,看看它是否足够快 - 最有可能最简单的方法。