C#内存问题
每次运行应用程序时,我的应用程序都会耗尽内存 我转到app.config并启用了C#内存问题,c#,C#,每次运行应用程序时,我的应用程序都会耗尽内存 我转到app.config并启用了gcAllowVeryLargeObjects <?xml version="1.0" encoding="utf-8" ?> <configuration> <startup> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" /> </start
gcAllowVeryLargeObjects
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup>
<runtime>
<gcAllowVeryLargeObjects enabled ="true"/>
</runtime>
</configuration>
您可以针对32位和64位体系结构进行编译。以下是如何更改该值:
- 在项目视图中右键单击项目
- 选择属性
- 建造
- 在平台目标下,选择x64
您可以针对32位和64位体系结构进行编译。以下是如何更改该值:
- 在项目视图中右键单击项目
- 选择属性
- 建造
- 在平台目标下,选择x64
您的应用程序可能存在不同的问题,您无法通过将其更改为64进程或将双精度更改为浮点来解决这些问题。使用内存探查器,它是Visual Studio 2013社区版的一部分 如果你是C#新手,我无法想象你会写这么大的东西
此类内存问题可能是由内存泄漏或例如分配太大的位图(宽度或高度溢出)或其他任何原因造成的。您的应用程序可能存在不同的问题,您无法通过将其更改为64进程或将双精度更改为浮点来解决。使用内存探查器,它是Visual Studio 2013社区版的一部分 如果你是C#新手,我无法想象你会写这么大的东西
此类内存问题可能是由内存泄漏或例如分配太大的位图(宽度或高度溢出)或其他任何原因造成的。取消选中首选32位复选框并保留任何CPU,或仅将x64设置为平台。但在实际执行此操作之前,请使用内存分析器并确保所有内容都正确无误。除非处理大量数据,否则内存不足不应该是正常的用例。也许你做错了什么。每次都是在同一个地方发生吗?有时候这个错误并不代表你的想法。如果您是C#/NET新手,则可能是资源泄漏。了解应用程序内存不足的原因比了解如何将其配置为64位更为重要。你的记忆问题有两个主要原因。1) 您的应用程序正在泄漏内存,2)您的应用程序正在使用大量内存。既然你没有说任何关于为什么你的应用程序内存不足的想法,我打赌是nbr。1,您的应用程序正在泄漏内存。因此,将它配置为64位只会在某种程度上延长它的寿命,它仍然会在以后的某个时候因内存问题而崩溃。我知道,但它是一个递归程序,创建了大量列表和字符串。我需要使用内存分析器来找出瓶颈所在。所以我运行了一个内存分析器,看起来c#中的数据表占用了我很多内存。这有意义吗?在我目前的例子中,在执行过程中的不同时间点创建了9000多个数据表。在这里,我认为是列表和字符串…取消选中首选32位复选框并保留AnyCPU,或者只是将x64设置为平台。但在实际执行此操作之前,请使用内存分析器并确保所有内容都正确无误。除非处理大量数据,否则内存不足不应该是正常的用例。也许你做错了什么。每次都是在同一个地方发生吗?有时候这个错误并不代表你的想法。如果您是C#/NET新手,则可能是资源泄漏。了解应用程序内存不足的原因比了解如何将其配置为64位更为重要。你的记忆问题有两个主要原因。1) 您的应用程序正在泄漏内存,2)您的应用程序正在使用大量内存。既然你没有说任何关于为什么你的应用程序内存不足的想法,我打赌是nbr。1,您的应用程序正在泄漏内存。因此,将它配置为64位只会在某种程度上延长它的寿命,它仍然会在以后的某个时候因内存问题而崩溃。我知道,但它是一个递归程序,创建了大量列表和字符串。我需要使用内存分析器来找出瓶颈所在。所以我运行了一个内存分析器,看起来c#中的数据表占用了我很多内存。这有意义吗?在我目前的例子中,在执行过程中的不同时间点创建了9000多个数据表。这里我以为是列表和字符串。。。
if (Environment.Is64BitProcess)
Console.WriteLine("64");
else
Console.WriteLine("32");