【问题标题】:Idea needed to increase the performance of my logic需要提高我的逻辑性能的想法
【发布时间】:2011-05-31 15:22:26
【问题描述】:

在我的应用程序中,我正在为每个用户 ID 创建一个映射,其中包含他可以访问的文件 ID。

例子:

用户 ID - 101 数据 - 100100101

所以我为每个用户创建了这个文件映射。当该位为 1 时,他可以访问该文件;否则他不会。但我的问题是我有 40,000,000 个文件。

每当用户搜索时,都会加载相应的用户地图以产生正确的结果。如果我有 40,000 个用户,这意味着我需要创建 40,000 个地图文件。

如何为这个系统创建一个高性能的实现?

【问题讨论】:

  • 创建一些关卡和所有者,然后将这些数据附加到文件中。然后检查用户是否可以运行/读/写/等它。除非您正在寻找其他东西?
  • 您能否对有权访问同一组文件的用户进行分组?然后为每个组创建一个地图文件,而不是每个用户一个。
  • 非常混乱的问题。请显示一些现有的代码/示例。这是 UNIX 吗?而且 - 我不敢问 - 你为什么要这样做?
  • 我正在创建这个文件,然后我将加载到内存中.. 我正在这样做.. 我需要知道他是否有访问权限...
  • 仅出于此目的,我正在创建文件..我不能使用不可能的组...

标签: c# performance business-logic


【解决方案1】:

我认为您应该使用通用解决方案:用户、用户组和用户和组的角色。如果你把你的逻辑分成这三个部分,它会更清晰易懂。

【讨论】:

    【解决方案2】:

    也许你不会说德语。但只需在以下文章的末尾滚动: http://www.activevb.de/tutorials/tut_sortalgo/sortalgo.html 并查看项目(旧 VB 经典)。

    它向您展示了排序算法之间的差异。您可以选择和比较。在这种情况下,我认为您可以选择可用于您的应用程序的哈希码(称为映射文件)。

    无论如何,如果可能,我建议使用树或子组,而不是一个需要首先解析为 3 个参数的数字。

    问候

    【讨论】:

      猜你喜欢
      • 2016-08-28
      • 2011-01-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-21
      • 1970-01-01
      相关资源
      最近更新 更多