草庐IT

c# - 大型可滚动数据 SL4 的虚拟化性能问题

问题:在可滚动区域显示大量数据会带来糟糕的性能和/或用户体验。尝试过:主要是在ListBox中设置一个DataTemplate以显示填充数据的网格,其中VirtualizationMode设置为Recycle并且在ListBoxiteself上设置了固定高度。类似于下面的示例。ContentControl将引入标准从另一个View格式化填充项的整体布局,其中包含大约20个静态文本block和20个数据绑定(bind)文本block。这很好用,并将初始负载减半。但是,现在的问题是我需要高度不是固定大小的能力,因此它会占用其父项中的可用空间,甚至可以调整大小。感谢@DanFox我发现您必须

c# - 在 .net 中读取大型 XML 文档

我需要使用.net文件读取大型xml,这些文件的大小很容易达到几GB。我尝试使用XDocument,但当我尝试加载文档时它只会抛出System.OutOfMemoryException。读取大尺寸XML文件的最高效方法是什么? 最佳答案 您基本上必须在此处使用“拉”模型-XmlReader和friend。这将允许您流式传输文档,而不是一次将其全部加载到内存中。请注意,如果您知道自己处于“足够小”元素的开头,则可以创建一个XElementfromanXmlReader,使用LINQtoXML的荣耀处理它,然后转到下一个元素。

c# - 大型阵列和 LOH 碎片。公认的惯例是什么?

我还有一个Unresolved问题HERE关于一些可能涉及LOH碎片以及其他未知数的绝望内存问题。我现在的问题是,公认的做事方式是什么?如果我的应用程序需要在VisualC#中完成,并且需要处理大型数组到int[4000000],我怎么能不因为垃圾收集器拒绝处理LOH而注定?似乎我被迫将任何大型数组设为全局数组,并且从不在它们周围使用"new"一词。因此,我只剩下带有“maxindex”变量的不优雅的全局数组,而不是通过函数传递的大小整齐的数组。我一直被告知这是不好的做法。还有什么选择?System.GC.CollectLOH("Seriously")是否有某种功能?是否有可能将垃圾收

C# - 大型集合存储

我目前正面临一个令人头疼的问题,我正在处理一个大型数据集(当我说大型时,我指的是数十亿行数据)并且我在速度和可扩展性之间陷入困境。我可以在数据库中存储数十亿行数据,但我的应用程序需要不断检查数据集中是否存在新的一行数据,如果不存在,则插入它,否则,检索它。如果我要使用数据库解决方案,我估计每次调用数据库以检索一行数据需要10毫秒(乐观估计),我需要为我在应用程序中处理的每个文件检索大约80万条记录,这意味着要处理每个文件(10msx800k=2.22hours)。该时间跨度对于分析和处理1个文件来说太长了,考虑到当数据库增长到数十亿行时,从数据库中检索一行数据所需的时间将会增加。我也想

c# - 是否有用于处理 Internet 上的大型数据集的设计模式?

我正在寻找一种设计模式来处理互联网上的大型数据集,并定期更新这些对象。我正在开发一个应用程序,它将一次在UI中显示数千条记录。此外,这些对象的各种属性都是暂时的,需要在客户端上更新,以使用户了解系统中这些记录的状态变化。我有一些如何解决这个问题的想法,但我认为可能有一个(或多个)设计模式可以处理这种类型的场景。限制:客户端是用Silverlight编写的。对象本身并不是很大(大约有15个值类型和字符串属性),但是查询所有数据的开销很大。15个左右的属性包含来自各种来源的数据;没有巧妙的连接语句或索引会加速查询。我正在考虑在初始加载时只填充属性的一个子集,然后在用户放大给定的对象分组时填

c# - 将大型 C# winforms 应用程序升级到 WPF 的最简单方法是什么

我处理一个大型C#应用程序(大约450,000行代码),我们经常遇到桌面堆和GDI句柄泄漏问题。WPF解决了这些问题,但我不知道升级的最佳方式是什么(我预计这会花费很长时间)。该应用程序只有几种形式,但它们可以包含许多不同的用户控件集,这些控件是通过编程确定的。这是公司内部应用,因此我们的发布周期非常短(通常为3周的发布周期)。是否有一些渐进的升级路径,或者我们是否必须付出巨大的努力才能承受冲击? 最佳答案 您可以从创建WPF主机开始。然后您可以使用控件来承载您当前的应用程序。然后,我建议在WPF中创建一个新控件库。一次一个,您可以

c# - 在 C# 中,如何在不逐行搜索的情况下在大型文本文件中搜索字符串?

我有一个大文本文件,需要搜索特定字符串。有没有一种无需逐行阅读的快速方法?由于文件的大小(超过100MB),此方法非常慢。 最佳答案 考虑到文件的大小,您真的希望事先将它们完全读入内存吗?逐行可能是这里最好的方法。 关于c#-在C#中,如何在不逐行搜索的情况下在大型文本文件中搜索字符串?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/2095437/

c# - 在 C# 中解析大型 XML(大小为 1GB)的最佳方法是什么?

我有一个1GB的XML文件并且想解析它。如果我使用XMLTextreader或XMLDocument,结果会很慢,有时会挂起... 最佳答案 您必须使用xmlreader实现自定义逻辑。xmlreader在使用之前不会将完整的XML加载到内存中,这意味着您可以从流中读取它并照此处理它。 关于c#-在C#中解析大型XML(大小为1GB)的最佳方法是什么?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/

c# - 使用 Entity Framework 和 LINQ 查询大型数据集时如何避免内存溢出

我有一个处理所有数据库方法的类,包括EntityFramework相关的东西。当需要数据时,其他类可能会调用此类中的方法,例如publicListGetData(intstart,intend);数据库正在使用LINQtoEF进行查询,然后调用类可以遍历数据。但由于其他类无法访问EF中的实体,我需要对查询执行“ToList()”操作,并将完整的数据集提取到内存中。如果这个集合非常大(10到100GB)会怎样?是否有一种更有效的迭代方式,同时仍然保持松散耦合? 最佳答案 在Entity框架中处理大型数据集的正确方法是:使用EFv4和P

c# - 作为 Web 服务结果的大型复杂对象

关闭。这个问题需要更多focused.它目前不接受答案。想改进这个问题吗?更新问题,使其只关注一个问题editingthispost.关闭5年前。Improvethisquestion女士们先生们大家好!好的,继续我关于ASP.NETWebServiceResults,ProxyClassesandTypeConversion的其他问题.我参与了项目中的一部分,我需要集中精力。基本上,我们有一个大型、复杂的自定义对象,需要从Web服务返回并在客户端应用程序中使用。现在,根据前面的讨论,我们知道这将采用代理类的形式作为返回类型。为了克服这个问题,我们基本上需要将属性从一个复制到另一个。在