Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.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
Performance 对于哪种类型的应用程序,垃圾收集器会成为一个关注点?_Performance_Memory Management_Garbage Collection - Fatal编程技术网

Performance 对于哪种类型的应用程序,垃圾收集器会成为一个关注点?

Performance 对于哪种类型的应用程序,垃圾收集器会成为一个关注点?,performance,memory-management,garbage-collection,Performance,Memory Management,Garbage Collection,由于其效率,大多数垃圾收集器算法在许多应用中都是无害的。然而,为了扫描堆栈并从堆中释放非引用对象,对象的“集合”确实需要少量开销 我知道答案的一部分是“视情况而定”。但是,我想知道您在任何支持自动堆内存分配的编程语言中所从事的项目类型,对于这些项目,垃圾收集器不是一个选项,或者成为一个关注点我目前正在Haskell开发一个程序,该程序创建直接非循环图(DAG)使用MPSoCs模拟中的16个记录道文件。每个文件超过115MB,实际上我的解决方案需要以列表形式将所有这些文件存储在内存中,以便构建DA

由于其效率,大多数垃圾收集器算法在许多应用中都是无害的。然而,为了扫描堆栈并从堆中释放非引用对象,对象的“集合”确实需要少量开销


我知道答案的一部分是“视情况而定”。但是,我想知道您在任何支持自动堆内存分配的编程语言中所从事的项目类型,对于这些项目,垃圾收集器不是一个选项,或者成为一个关注点

我目前正在Haskell开发一个程序,该程序创建直接非循环图(DAG)使用MPSoCs模拟中的16个记录道文件。每个文件超过115MB,实际上我的解决方案需要以列表形式将所有这些文件存储在内存中,以便构建DAG


我认为在这种情况下,垃圾收集器将是提高程序效率的一个很好的合作伙伴,因为实际上我确实需要将这些文件存储在内存中

我目前正在Haskell开发一个程序,该程序使用MPSoCs模拟中的16个跟踪文件创建直接非循环图(DAG)。每个文件超过115MB,实际上我的解决方案需要以列表形式将所有这些文件存储在内存中,以便构建DAG


我认为在这种情况下,垃圾收集器将是提高我的程序效率的一个很好的合作伙伴,因为实际上我确实需要将这些文件存储在内存中

我已经专业地使用垃圾收集语言超过15年了(编程30年了)。我的工业项目范围从整理油田8000名传感器数据的软件到(软)实时可视化和低延迟算法交易软件

我发现垃圾收集在所有情况下都很有用。我对两个主要项目中的垃圾收集延迟有所保留:可视化软件(OCaml)和algo交易软件(F#)。然而,我的担心被证明是不合理的,因为在这两种情况下,垃圾收集的解决方案实际上比非垃圾收集的解决方案表现出更好的延迟特性。特别是,将可视化软件从C++翻译成OCAM,实际上将最坏情况的STARS提高了5倍。C++代码中的档位是由于集合超出范围和引用计数导致析构函数调用析构函数的雪崩。为了解决这个问题,我们花了相当大的努力,编写了自定义分配器,使销毁递增,但从未成功。此外,我们还发现,纯功能数据结构通常表现出出色的延迟特性,如果没有垃圾收集器,它们基本上是难以处理的


我的“垃圾收集器是好的”这句话唯一值得注意的例外是穷人的垃圾收集器(如引用计数)和保守的垃圾收集器(如Boehm的GC)。在专业环境中,我不会用驳船撑杆碰它们。

我已经专业地使用垃圾收集语言超过15年了(编程也有30年了)。我的工业项目范围从整理油田8000名传感器数据的软件到(软)实时可视化和低延迟算法交易软件

我发现垃圾收集在所有情况下都很有用。我对两个主要项目中的垃圾收集延迟有所保留:可视化软件(OCaml)和algo交易软件(F#)。然而,我的担心被证明是不合理的,因为在这两种情况下,垃圾收集的解决方案实际上比非垃圾收集的解决方案表现出更好的延迟特性。特别是,将可视化软件从C++翻译成OCAM,实际上将最坏情况的STARS提高了5倍。C++代码中的档位是由于集合超出范围和引用计数导致析构函数调用析构函数的雪崩。为了解决这个问题,我们花了相当大的努力,编写了自定义分配器,使销毁递增,但从未成功。此外,我们还发现,纯功能数据结构通常表现出出色的延迟特性,如果没有垃圾收集器,它们基本上是难以处理的


我的“垃圾收集器是好的”这句话唯一值得注意的例外是穷人的垃圾收集器(如引用计数)和保守的垃圾收集器(如Boehm的GC)。在专业背景下,我不会用驳船撑杆碰它们。

我很想听听你的节目在有GC和没有GC的情况下的表现。你已经开始了吗?你选择了哪种编程语言?性能非常差,因为我在使用16个文件之前将它们全部加载到内存中,但现在我正在研究另一种解决问题的方法,以Haskell的懒散方式,一部分一部分地使用文件。这将使垃圾收集器能够释放内存中已经计算出来的部分。我很想了解您的程序在有GC和没有GC的情况下的性能。你已经开始了吗?你选择了哪种编程语言?性能非常差,因为我在使用16个文件之前将它们全部加载到内存中,但现在我正在研究另一种解决问题的方法,以Haskell的懒散方式,一部分一部分地使用文件。这将使垃圾收集器能够从内存中释放已被计算的部分