gpt4 book ai didi

memory-management - 识别 Julia 中异常的内存分配

转载 作者:行者123 更新时间:2023-12-03 23:40:48 25 4
gpt4 key购买 nike

我是一个新的 julia 用户,即将编写我的第一个脚本。我使用 R、Matlab 和 python 进行数据分析,我还没有担心使用 c 或 java 的人会担心内存分配和更多高级编程。我想用 julia 来模拟一些生物数据,而在 python 中,这些类型的程序会变得非常慢。因此,当我阅读 memory allocation 部分中的性能提示时吸引住了我的眼球。作为一个缺乏 C 等高级语言背景的人,我应该寻找什么?我读了这篇文章 here但他有他编译的 python 代码,然后在 Julia 中运行,所以我觉得它不相关。
我怎么知道我什么时候有异常的内存分配,相反,Julia 中的“好的”内存分配是什么样的?有没有办法根据我正在运行的内容确定 Not Acceptable 内存需求水平?
除了@time宏 你还有什么其他打样技巧?

最佳答案

要非常仔细地了解 Julia 性能问题,请阅读 https://docs.julialang.org/en/v1/manual/performance-tips/必须自己运行该页面中的所有示例。
通常,内存分配不是主要瓶颈。根据我的经验,当人们开始使用 Julia 时,类型稳定性和使用全局变量是所有性能问题的主要来源。
上面的文档也有关于内存分配的部分:

"Unexpected memory allocation is almost always a sign of some problem with your code, usually a problem with type-stability or creating many small temporary arrays."


您会在那里找到有关解决此类问题的详细讨论。
关于代码分析,您有以下工具:
  • @time宏(请注意,第一次为给定方法运行它时,您实际上主要测量的是编译时间而不是运行时间。因此通常推荐 BenchmarkTools.jl
  • BenchmarkTools.jl与其 @btime宏(除其他外 - 了解正在发生的事情的第一选择
  • 内置分析 ( https://docs.julialang.org/en/v1/manual/profile/ ) 和 ProfileView.jlProfileSVG.jl分别在独立和 Jupyter 环境中可视化分析数据的软件包
  • 在最复杂的情​​况下,您可以使用 @code_lowered 查看各个编译阶段的代码。 , @code_typed@code_native

  • 这些是高性能 Julia 代码的良好开端的基本和最有用的工具。

    关于memory-management - 识别 Julia 中异常的内存分配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65980601/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com