【发布时间】:2015-01-27 21:56:12
【问题描述】:
我正在尝试生成大量字符串。在我的小示例代码中,它按预期工作,但我想要的结果的字符串长度为 8,而不是像下面这样的 3,这会导致内存不足异常。
有什么方法可以更有效地运行它吗?
string chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
string numbers = "0123456789";
var query = from c1 in chars
from c2 in chars
from d1 in digits
select string.Format("{0}{1}{2}", c1, c2, d1);
string[] possibleCombinations = query.ToArray();
【问题讨论】:
-
请根据您尝试生成的组合数量做一些基本的数学运算。这个数字可能非常大(数十亿或可能是数万亿)..因此不确定您正在寻找什么样的解决方案。即使OOM问题解决了,你可能需要很长时间才能枚举这么多值。为什么你首先需要生成这么多字符串?
-
您真的打算在内存中创建一个包含 218,340,105,584,896 个条目 (62^8) 的彩虹表吗?
标签: c# asp.net performance