我正在写一个JSON作曲家,但我对我得到的速度感到不满。
输入是哈希表和/或对象列表。
这是代码的片段。 'de'是Hash表中的DictionaryEntry,'output'是我们正在构建的json字符串。
if (de.Value.GetType() == typeof(Hashtable))
{
output += RenderObject((Hashtable)de.Value, level + 1, format);
}
这基本上就是我整个代码的构建方式。
我的测试用例现在是一个包含10 000个哈希表的列表,每个哈希表有4个不同类型的键/值对。
在糟糕的桌面计算机上,它在60秒内生成整个字符串。输出为927 kB。
我正在寻找有关优化它的建议,并输入我应该满意的速度。我想,生成< 1mb json字符串的整整一分钟太慢了。
答案 0 :(得分:4)
您需要使用StringBuilder
在递归时,您应该追加到原始的StringBuilder;不要为每个对象创建单独的StringBuilder。