C# 堆栈溢出/内存不足
我最近一直在用c#编写应用程序,由于以有趣的方式处理大量数据,这些应用程序使用大量内存或堆栈溢出。有没有更适合这种类型的语言?学习一种不同的语言(c++除外)来实现这一点,我会受益吗 C#不是问题所在。您可能需要重新考虑处理内存和数据的“有趣方式”。在这里提供特定的场景和问题,以获得可能在应用程序中使用的潜在问题的方法和策略的具体答案和备选方案。 < P>如果您正在使用大数据集并进行功能操作,您可以考虑查看函数语言,如F或Haskell。 系统不会因为递归问题而受到影响 然而这些语言无法替代良好的设计和对操作方式的关注。C#可能完全适合您的问题,您可能只需要重构您处理问题空间的方式。(交互式数据语言)特别适合大型矩阵式数据集。然而,您必须注意使用矩阵或向量运算,而不是顺序循环 如果许可是一个问题,您可以尝试免费克隆,尽管它可能没有IDL快C# 堆栈溢出/内存不足,c#,C#,我最近一直在用c#编写应用程序,由于以有趣的方式处理大量数据,这些应用程序使用大量内存或堆栈溢出。有没有更适合这种类型的语言?学习一种不同的语言(c++除外)来实现这一点,我会受益吗 C#不是问题所在。您可能需要重新考虑处理内存和数据的“有趣方式”。在这里提供特定的场景和问题,以获得可能在应用程序中使用的潜在问题的方法和策略的具体答案和备选方案。 < P>如果您正在使用大数据集并进行功能操作,您可以考虑查看函数语言,如F或Haskell。 系统不会因为递归问题而受到影响 然而这些语言无法替代良好
您的数据有多大?如果在32位系统上运行,当您消耗约800mb内存时,Net将开始出现内存不足异常。这是因为它需要分配连续的内存块。如果您有一个需要扩展的数组或列表,它会将旧内容复制到新内容,从而同时分配两个实例 如果您可以运行64位,那么您将在~2GB及以上的任何情况下遇到异常,所有这些都取决于您的应用程序的工作方式以及运行的其他内容 对于大于物理内存的数据,我建议使用内存映射文件,或者进行一些磁盘/内存交换