【发布时间】:2011-01-13 09:14:06
【问题描述】:
在会话中存储一组值的最有效方法是什么?我猜它是列表/数组或字典。基本上,当用户从 DropDownList 中选择一个项目时,会将一个值 (between 1 and N where N <= 20) 发送回服务器。然后,我希望将此值用作会话中的索引(如果使用数组)或键(如果使用字典)。我不希望用户看到该值,因此为什么它没有存储在 DDL 中。据我所知,字典是为键查找而设计的。但是,由于规模很小,在这种情况下使用字典是否有任何开销可能会降低效率?每个对应的值对用户来说都是唯一的,所以我决定使用会话。
感谢您的建议
【问题讨论】:
-
我们说的是多少并发用户?如果不是 1000 个,可能是微优化...
-
@Mitch - 线程安全问题在它们之间有所不同,希望有人也能指出这一点
-
高峰时间预计会同时出现 1000-2000。通常同时有几百个。我必须用这种方法处理线程问题吗?
-
你能提供一个你正在尝试做什么的代码示例吗?不清楚您所说的“然后我希望将此值用作会话中的索引或键”是什么意思。你在索引或散列什么?另外,“我不希望用户看到该值,因此为什么不将其存储在 DDL 中”是什么意思,意义何在?数据定义语言?那将是 RDBMS 的事情。
-
@gWiz:我没有代码访问 atm。但是,它只是用户选择项目的 DropDownList。每个项目都有一个介于 1 和 20 之间的值。假设使用一个数组,该值将成为索引 (myArray[DropDownList_value])。该数组包含自定义类型的 ID - 我不希望用户看到的 ID(因此我不只是将 ID 作为每个项目的值)。通过 DDL,我的意思是 DropDownList :)
标签: c# asp.net performance session data-structures