代码之家  ›  专栏  ›  技术社区  ›  T. Stone

堆栈溢出/内存不足

c#
  •  0
  • T. Stone  · 技术社区  · 15 年前

    我最近一直在用c语言编写应用程序,由于以有趣的方式处理大量数据,这些应用程序使用大量内存或堆栈溢出。有没有一种语言更适合这类事情?学习一种不同的语言(除了c++)来做这件事对我有好处吗?

    4 回复  |  直到 15 年前
        1
  •  10
  •   Sampson    15 年前

    C不是问题所在。你可能需要重新考虑你处理内存和数据的“有趣方式”。在此处提供特定的场景和问题,以获得应用程序中可能使用的潜在问题方法和策略的特定答案和替代方案。

        2
  •  2
  •   Mikael Svenson    15 年前

    如果在32位系统上运行,则当您消耗约800mb内存时,.Net将开始出现内存不足异常。这是因为它需要分配连续的内存块。如果您有一个需要扩展的数组或列表,它会将旧内容复制到一个新内容,从而同时分配两个实例。

    如果您可以运行64位,那么您将在~2GB或更高版本上遇到异常,这取决于您的应用程序的工作方式,以及正在运行的其他内容。

        3
  •  1
  •   GrayWizardx    15 年前

    如果您正在处理大型数据集并执行函数操作,那么可以考虑使用F#或Haskell这样的函数语言。

    不会轻易受到递归问题的影响。

    这些语言不能代替一个好的设计,也不能代替对你的操作的关注。有可能C#完全适合您的问题,您可能只需要重构如何处理问题空间。

        4
  •  1
  •   Pablo Rodriguez    15 年前

    IDL

    如果授权有问题,可以尝试免费克隆 GDL ,尽管它可能没有IDL快。

    你的数据有多大?