问题标签 [gcallowverylargeobjects]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
25782 浏览

c# - .Net 中非常大的集合导致内存不足异常

我正在测试.Net 中的集合有多大。从技术上讲,任何集合对象都可以增长到物理内存的大小。

然后我在一个服务器上测试了下面的代码,它有 16GB 内存,运行 Windows 2003 服务器和 Visual Studio 2008。我测试了 F# 和 C# 代码,并在运行时查看了任务管理器。我可以看到,在大约增长 2GB 内存后,程序因内存不足异常而崩溃。我确实在属性页中将目标平台设置为 x64。

我对C5集合库做了同样的测试。结果是 C5 中的字典可能会用完整个内存。代码使用 C5:

有谁知道为什么?

0 投票
2 回答
3745 浏览

c# - .NET 中的数组分配

问题是关于.net 中数组的分配。我在下面有一个示例程序,其中我可以获得的最大数组是长度。我将长度增加到 +1,它给出了 outofMemory 异常。但是如果我保持长度并删除注释,我可以分配 2 个不同的大数组。两个数组都小于 .net 允许的 2 GB 对象大小,总内存也小于虚拟内存。有人可以提出任何想法吗?

0 投票
3 回答
483 浏览

.net - Array.zeroCreate 和 Array.init 之间的区别

我想向同事展示你可以分配超过 2GB 的内存,所以我做了一个小测试应用程序。

这很有效,您实际上会看到该过程愉快地占用了系统的内存。但是,它需要一些时间 - 因此Array.Parallel.init.

我注意到,相同的代码不起作用,如果我用

更准确地说,没有数据被分配,也不需要时间。

所以我的问题是;Array.zeroCreate 和 Array.init 在语义上有什么区别?

我知道每次Array.init都会运行我的konst 0uy函数,这可以解释时差。但是为什么不Array.zeroCreate分配内存呢?

0 投票
1 回答
1872 浏览

c# - 你如何使用代码隐藏编写 gcAllowVeryLargeObjects

我如何在后面的代码中用 c# 编写这个?gcAllowVeryLargeObjects 我不能使用配置文件。

下面是配置文件版本

0 投票
1 回答
11455 浏览

c# - 带有 gcAllowVeryLargeObjects 的 OutOfMemoryException

我正在使用带有相当大(虽然不是很深)的项目图的 BinarySerializer。我有 8GB 的​​ ram 由 12Gig 的交换支持,并且在序列化时我得到了一个 OutOfMemoryException ,这是预期的(图形可能接近或超过 2Gb)。

但是,当我使用 gcAllowVeryLargeObjects 时,它并没有更好,我仍然遇到相同的异常,并且我肯定正在处理应该保存在内存中的东西(至少在交换时)。

我能做些什么来支持序列化这个/一种获得相同功能集的方法,但可能会以大块的形式获得结果?

我的序列化代码没有什么特别之处:

我正在序列化的对象包含项目数组,这些项目本身包含数组等,但完整的图形本身并不是“那么”大(它是索引数据的结果,在源头,大小已经只有 1GB 左右)。

这也不是由于 GC 碎片(压缩大堆没有帮助)。

0 投票
1 回答
1259 浏览

azure - 如何为 AzureWorker 角色将 gcAllowVeryLargeObjects 设置为 true?

我无法理解如何为工作角色设置 gcAllowVeryLargeObjectsruntime 参数。我在 app.config 中设置了这个婴儿车。但它不起作用。据我了解,我需要以某种方式在 wotker 主机的配置文件中对其进行配置。

更新:基于答案的最终解决方案

服务定义.csdef

下一个文件应作为内容添加到工作项目,并始终复制本地

启动.ps1

我的启动.cmd

0 投票
1 回答
517 浏览

c# - gcAllowVeryLargeObjects 的可能缺点?

在几次 outOfMemory 异常之后,我启用了“gcAllowVeryLargeObjects”,它工作得非常好。我现在想知道为什么它不是 C# 中的默认选项(在 64 位平台上)。

是出于纯粹的兼容性原因吗?还是我错过了 gcAllowVeryLargeObjects 的主要缺点?

0 投票
3 回答
683 浏览

c# - 超大阵列

我必须使用大小为 34000x34000 项的二维数组进行数学计算。

明显的问题 - CLR 不可能将如此大的数据部分存储在内存中。我尝试使用MemoryMappedFile,但是当我尝试为对象创建查看器时它也失败了:MemoryMappedFile.CreateViewAccessor()。还有其他已经存在的存储大型数组的方法吗?(因为我没有太多时间尝试实现自定义大数据存储)

谢谢

0 投票
2 回答
848 浏览

c# - OutOfMemoryException 使用 Bitmap 调整大图像大小

我想在我的网站中调整图像的大小,但是当我使用 Bitmap 加载 14032*19864(png 扩展名)的图像时,OutOfMemoryException会抛出一个。我的编译器配置是any cpu. 我在怀疑运行环境是否是x64. 代码如下:

异常发生在以下行

0 投票
1 回答
2501 浏览

c# - gcallowverylargeobjects 没有解决 C# 中的维度限制

在我的 C# 代码中,我需要包含一个大小为 13805*55223 的矩阵;我相信这不是那么大。

为了克服 RAM 的限制,我使用了 gcAllowVeryLargeObjects,并且我还没有选中更喜欢 32 位系统。

做了所有这些,我仍然面临“数组维度超出支持的范围”错误!

感谢您为处理此问题提供的任何帮助。