Tag: 性能

通用列表包含()性能和替代方案

我需要存储大量的键值,其中键不唯一。 键和值都是字符串。 物品数量约为500万。 我的目标是只保留唯一的对。 我试图使用List<KeyValuePair> ,但Contains()非常慢。 LINQ Any()看起来快一点,但仍然太慢。 是否有任何替代方法可以更快地在通用列表上执行搜索? 或者也许我应该使用另一个存储?

DB4O可扩展性

我正在寻找有关DB4O对象数据库的信息。 我知道它有客户端/服务器模式,但我不知道它是多么可扩展。 我是对象数据库想法的大爱好者,但仍无法在我的任何项目中找到合适的OODB。 所以我的问题是: 如果有人在多客户端环境中部署了DB4O,我感兴趣,与RDBMS相比,它的表现如何? 迄今为止任何Web应用程序都是由DB4O提供支持的吗? 我可以使用DB4O替代SQL Server(至少SQL Express)吗? DB4O在实践中可以支持多少并发客户端? DB大小增加时性能会降低吗? 谢谢 PS我对C#版感兴趣。

搜索1GB CSV文件

我有一个CSV文件。 每一行都由相同的格式组成,例如/ I,h,q,q,3,A,5,Q,3,[,5,Q,8,c,3,N,3,E,4,F,4,g,4,I,V,9000,0000001-100,G9999999990001800000000000001,G9999999990000001100PDNELKKMMCNELRQNWJ010, , , , , , ,D,Z, 我有一个Dictionary<string, List> 它通过打开文件,读取每一行,从行中获取元素并将其添加到字典来填充,然后关闭文件。 该字典在程序的其他地方使用,它接受输入数据到程序中,然后在字典中找到密钥并使用24个元素与输入数据进行比较。 StreamReader s = File.OpenText(file); string lineData = null; while ((lineData = s.ReadLine()) != null) { var elements = lineData.Split(‘,’); //Do stuff with elements var compareElements = elements.Take(24).Select(x => x[0]); FileData.Add(elements[27], new List(compareElements)); } s.Close(); 我刚刚被告知CSV文件现在将是800mb,并且其中有大约800万条记录。 我刚刚尝试在我的双核Win 32位笔记本电脑上加载4GB RAM进行调试,它抛出了OutOfMemoryException 。 我现在认为不将文件加载到内存中是最好的选择,但需要找到一种快速搜索文件的方法,以查看输入数据是否具有与element[27]相等的匹配项,然后获取前24个元素在该CSV中并将其与输入数据进行比较。 a)即使我坚持使用这种方法并使用16GB内存并且Windows 64bit会让字典中的许多项目都可以吗? […]

WPF DynamicDataDisplay – 使用标记缓慢绘图

在使用标记时,我很难等待D3中的ChartPlotter显示自己。 当然,我正试图绘制Gazillion记录(好的,700,000条记录)。 当只使用一条线时,一切都很好(大约20秒)。 使用标记时,我们说的是5分钟。 这是不可接受的。 有任何想法吗? 这就是我所做的,并在其下进行解释。 public static string MakeSimplePlot(double[][] xData, double[][] yData, string[] legend, string xAxisTitle, string yAxisTitle, bool[] showLines, bool[] showMarkers) { ChartPlotter plotter = new ChartPlotter(); plotter.MainHorizontalAxis = new HorizontalAxis(); plotter.MainVerticalAxis = new VerticalAxis(); HorizontalAxisTitle horizontalAxisTitle = new HorizontalAxisTitle(); horizontalAxisTitle.Content = xAxisTitle; plotter.AddChild(horizontalAxisTitle); VerticalAxisTitle verticalAxisTitle = new VerticalAxisTitle(); verticalAxisTitle.Content = yAxisTitle; […]

哪个.NET集合更快:枚举foreach Dictionary 。值或List ?

这些枚举中的一个是否比另一个或大约相同? (C#中的例子) 情况1: Dictionary valuesDict; // valuesDict loaded with thousands of objects foreach (object value in valuesDict.Values) { /* process */ } 案例2: List valuesList; // valuesList loaded with thousands of objects foreach (object value in valuesList) { /* process */ } 更新: 背景: 字典对于其他地方的键控搜索是有益的(而不是通过列表迭代),但是如果遍历字典比通过列表慢得多,那么好处将会减少。 更新:接受许多人的建议,我已经完成了自己的测试。 首先,这些是结果。 以下是该计划。 迭代整个收集词典:78 Keyd:131列表:76 键控搜索集合Dict:178 Keyd:194列表:142800 using System; using […]

如何使用自动脚本在一天中的不同时间测试我的Web应用程序的性能?

基本上,我有一个使用asp.net mvc 4框架的Web应用程序。 我使用C#作为我的后端。 在不同的时间,我注意到Web应用程序滞后或者速度很慢,但我想知道一天中的哪些时间以及其他一些有助于确定如何优化应用程序的信息。 我希望能够编写一个自动脚本,在一天中的不同时间测试Web应用程序,并将其与应用程序的缓慢相关联。 我是测试自动化的新手,所以我想知道从哪里开始编写脚本这些东西。 特别是对于asp.net网络应用程序?

计算richtextbox中所有单词的最有效方法是什么?

我正在写一个文本编辑器,需要提供一个实时字数。 现在我正在使用这个扩展方法: public static int WordCount(this string s) { s = s.TrimEnd(); if (String.IsNullOrEmpty(s)) return 0; int count = 0; bool lastWasWordChar = false; foreach (char c in s) { if (Char.IsLetterOrDigit(c) || c == ‘_’ || c == ‘\” || c == ‘-‘) { lastWasWordChar = true; continue; } if (lastWasWordChar) { lastWasWordChar = […]

使用linq更新对象的性能更佳

我有两个自定义对象列表,如果另一个列表中有一个与另一对字段匹配的对象,则希望更新一个列表中所有对象的字段。 此代码更好地解释了问题,并产生了我想要的结果。 但是对于较大的列表20k和具有匹配对象的20k列表,这需要相当长的时间(31秒)。 通过使用通用列表Find(Predicate)方法,我可以使用~50%来改善这一点。 using System; using System.Linq; using System.Linq.Expressions; using System.Collections.Generic; namespace ExperimentFW3 { public class PropValue { public string Name; public decimal Val; public decimal Total; } public class Adjustment { public string PropName; public decimal AdjVal; } class Program { static List propList; static List adjList; public static void Main() { propList […]

如何在Windows中获取每个进程磁盘活动

我需要提取给定进程的磁盘统计信息,我可以获取列出的进程并使用WMI和PerformanceCounters获取列出的CPU和内存等整体信息。 但是这些信息都是捆绑在一起的,有没有办法在每个进程中提取这些数据。 有点像Windows资源监视器? 提前致谢

写入文件C#的性能

我的情况概述: 我的任务是从文件中读取字符串,并将它们重新格式化为更有用的格式。 重新格式化输入后,我必须将其写入输出文件。 以下是必须完成的示例。 文件行示例: ANO=2010;CPF=17834368168;YEARS=2010;2009;2008;2007;2006 178343681682010Sua declaração não consta na base de dados da Receita Federal05/01/2012178343681682009Sua declaração não consta na base de dados da Receita Federal05/01/2012178343681682008Sua declaração não consta na base de dados da Receita Federal05/01/2012178343681682007Sua declaração consta como Pedido de Regularização(PR), na base de dados da Secretaria da Receita Federal do Brasil05/01/2012178343681682006Sua declaração […]