Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 分析在分析我的应用程序时内存中保留更多字符串对象的原因_C#_Asp.net_Vb.net - Fatal编程技术网

C# 分析在分析我的应用程序时内存中保留更多字符串对象的原因

C# 分析在分析我的应用程序时内存中保留更多字符串对象的原因,c#,asp.net,vb.net,C#,Asp.net,Vb.net,我一直在分析我的应用程序的高CPU问题(在负载测试期间CPU时钟约为80%)。我们从MS支持团队得到的反馈之一是,完整的GC每2秒运行一次,这是CPU密集型的,他们提到有许多字符串对象正在创建。因此,我一直在使用ANTS profiler分析应用程序,我看到在自定义web控件中动态呈现的html标记被挂起在内存中(由ANTS profiler显示)。即使我们动态绑定到button onclick事件的字符串被保存到内存中 例如: 在上面的代码中,ANTS profiler显示字符串“return

我一直在分析我的应用程序的高CPU问题(在负载测试期间CPU时钟约为80%)。我们从MS支持团队得到的反馈之一是,完整的GC每2秒运行一次,这是CPU密集型的,他们提到有许多字符串对象正在创建。因此,我一直在使用ANTS profiler分析应用程序,我看到在自定义web控件中动态呈现的html标记被挂起在内存中(由ANTS profiler显示)。即使我们动态绑定到button onclick事件的字符串被保存到内存中

例如:

在上面的代码中,ANTS profiler显示字符串
“return validatesheet('Default');”
即使在页面完全呈现后仍保留在内存中

ANTS profiler支持说,每个内存快照都会进行完整的GC收集。那为什么记忆中会出现这个字符串呢

任何建议都会有帮助


谢谢

问题已经解决。它被发现是依赖团队的可重用代码之一,其中他们有一个linq查询,在linq查询中,他们使用ToUpper和Trim函数进行字符串比较

由于它将在整个列表中循环,因此该逻辑块的CPU开销非常高


谢谢

你能给我们看一下蚂蚁的字符串图吗?它应该显示什么保存了对它的引用,以及它离GC根有多远。按钮仍然可以点击吗?我想,如果是这样的话,它会让字符串保持活动状态。我从MS反馈中得到的答案是,“return validatesheet('Default');”只是一个字符串文本,它一直存在于内存中。但是,这根本不会影响GC…这似乎是对的,ANTS profile只是从内存中提取它并显示。。。
protected void Page_Load(object sender, EventArgs e)
{
    Button1.Attributes.Add("OnClick", "return ValidateTheWorksheet('Default');");
}