【问题标题】:Loading\Querying large Serialized objects加载\查询大型序列化对象
【发布时间】:2011-02-16 11:50:52
【问题描述】:

我有一个 30MB 的序列化类存储在外部,其中包含查找值。每次收到 web 服务请求时,我都需要将序列化文件加载到内存中,并针对该序列化类查找特定键。此操作耗时且资源密集,严重影响应用程序性能。

请帮我解决这个问题。

【问题讨论】:

    标签: c# .net web-services memory


    【解决方案1】:

    显然你应该将你的序列化内容移动到数据库中,这样会更有效率。

    【讨论】:

    • 问题在于,客户端只会以序列化格式向我们提供查找值。即使在部署之后,对查找值的任何更新都是通过用新的替换现有的序列化文件来进行的。
    • 即使这样,您也可以创建一个数据库层,该层将在客户端接收的数据和您在数据库中的数据之间进行映射和比较。我以 JSON 格式从 facebook 接收数据库 .. 但我将 tham 保存在 MSSQL 中.. 我有代码在两者之间完成工作..
    • 好的,正如你所说,我会尝试将值加载到数据库中。
    【解决方案2】:

    尝试将序列化类中的 Lookup 值加载到 Application 对象。在此之前,需要将序列化类中的值加载到 System.Collections.Generic.HashSet

    也不要忘记覆盖哈希码函数。为了提高性能,请在构造函数中预生成哈希码。

    【讨论】:

    • 我会在完成 Shekar 提到的数据库建议后对此进行调查。谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-27
    • 1970-01-01
    • 2019-07-11
    • 2019-07-23
    • 2018-10-27
    相关资源
    最近更新 更多