Tag: 性能

如何确定ASP.Net缓存的总大小?

我在Web项目中使用ASP.net缓存,我正在为它编写一个“状态”页面,它显示缓存中的项目,以及我可以找到的有关缓存的许多统计信息。 有什么方法可以获得缓存数据的总大小(以字节为单位)? 每个项目的大小会更好。 我想在网页上显示这个,所以我认为我不能使用性能计数器。

有没有人知道更快的方法来做String.Split()?

我正在读取CSV文件的每一行,需要获取每列中的各个值。 所以现在我只是使用: values = line.Split(delimiter); 其中line是一个字符串,用于保存由分隔符分隔的值。 测量我的ReadNextRow方法的性能我注意到它在String.Split上花了66%,所以我想知道是否有人知道更快的方法来做到这一点。 谢谢!

SQL Server:动态where子句

问题: Ajax建议 – 在食谱中搜索[ n ]成分。 那就是:匹配多种成分的配方。 例如: SELECT Recipes using “flower”, “salt”会产生: “Pizza”, “Bread”, “Saltwater”等等。 表: Ingredients [ IngredientsID INT [PK], IngredientsName VARCHAR ] Recipes [ RecipesID INT [PK], RecipesName VARCHAR ] IngredientsRecipes [ IngredientsRecipesID INT [PK], IngredientsID INT, RecipesID INT ] 查询: SELECT Recipes.RecipesID, Recipes.RecipesName, Ingredients.IngredientsID, Ingredients.IngredientsName FROM IngredientsRecipes INNER JOIN Ingredients ON […]

哪个更好用数组或List ?

我想知道哪种类型会有更好的性能以及您认为应该使用哪种类型。 例如,我有一个字符串列表,不知道我需要多少项,因此.Add(String)函数非常方便。 我可以随时轻松地将新字符串添加到列表中。 使用每个的优点/缺点是什么? 列出新arrays?

堆与堆栈分配的影响(.NET)

从关于堆和堆栈的SO回答 1中 ,它提出了一个问题:为什么知道变量的分配位置很重要? 在另一个答案,有人指出堆栈更快。 这是唯一的含义吗? 有人可以给出一个代码示例,其中简单的分配位置更改可以解决问题(例如,性能)? 请注意,此问题是特定于.NET的 1问题从SO中删除。

改善性能反映,我应该考虑哪些替代方案

我需要动态设置对象上的值或属性的值,将其称为传输对象。 将会创建相当数量的这些传输对象并在短时间内设置其属性。我想避免使用reflection,是否有替代? 如果是这样的样本实现我可以看一下? 谢谢

慢SoapHttpClientProtocol构造函数

我正在使用Microsoft Dynamics CRM进行一些实验。 您通过Web服务与它进行交互,并且我已将Web引用添加到我的项目中。 Web服务接口非常丰富,生成的“Reference.cs”大约是90k loc。 我在控制台应用程序中使用Web引用。 我经常改变一些东西,重新编译并运行。 编译很快,但是CrmService service = new CrmService(); Web服务引用非常慢,花费大约15-20秒: CrmService service = new CrmService(); 分析显示所有时间都花在SoapHttpClientProtocol构造函数中。 罪魁祸首显然是XML序列化代码(不包括在上面提到的90k loc中)是在运行时生成的,然后才进行JIT。 这在构造函数调用期间发生。 在玩耍和尝试时,等待是相当令人沮丧的。 我尝试了sgen.exe,ngen和XGenPlus的各种组合(需要几个小时并生成500MB的额外代码),但无济于事。 我已经考虑过实现一个几乎没有CrmService实例的Windows服务,可以在需要的时候发布,但这似乎太过分了。 有任何想法吗?

SQLBulkCopy的任何方式“插入或更新,如果存在”?

我需要定期更新一个非常大的表,SQLBulkCopy是完美的,只有我有一个2列索引,可以防止重复。 有没有办法使用SQLBulkCopy作为“插入或更新,如果存在”? 如果没有,最有效的方法是什么? 我再次谈论一张包含数百万条记录的表格。 谢谢

指定XmlRootAttribute时XmlSerializer性能问题

我目前有一个非常奇怪的问题,我似乎无法弄清楚如何解决它。 我有一个相当复杂的类型,我正在尝试使用XmlSerializer类进行序列化。 这实际上运行正常,类型序列化正确,但似乎需要很长时间这样做; 大约5秒,具体取决于对象中的数据。 经过一些分析后,我把问题缩小了 – 奇怪的是 – 在调用XmlSerializer.Serialize时指定一个XmlRootAttribute。 我这样做是为了将从ArrayOf序列化的集合的名称更改为更有意义的东西。 一旦我删除参数,操作几乎是即时的! 任何想法或建议都会非常好,因为我完全被这个问题所困扰!

SQLite .NET的性能,如何加快速度?

在我的系统上,大约86000个SQLite插入占用了20分钟,意味着每秒约70次插入。 我必须做数百万,我怎么能加快它? 在SQLiteConnection对象上为每一行调用Open()和Close()会降低性能? 交易能帮忙吗? 单线的典型插入方法: public int InsertResultItem(string runTag, int topicId, string documentNumber, int rank, double score) { // Apre la connessione e imposta il comando connection.Open(); command.CommandText = “INSERT OR IGNORE INTO Result ” + “(RunTag, TopicId, DocumentNumber, Rank, Score) ” + “VALUES (@RunTag, @TopicId, @DocumentNumber, @Rank, @Score)”; // Imposta i parametri command.Parameters.AddWithValue(“@RunTag”, runTag); […]