首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Kedro -内存管理

Kedro -内存管理
EN

Stack Overflow用户
提问于 2021-10-16 01:54:41
回答 2查看 363关注 0票数 3

我正在处理一个Kedro 0.17.2项目,该项目正在处理内存不足的问题,我正在努力减少内存占用。

我正在使用来自mprof库的memory-profiler进行分析,我注意到总是有一个子进程,并且在正在运行的节点中的第一次计算之后,主进程中的内存似乎重复。Kedro有可能复制内存中的数据吗?如果是的话,是否有办法避免这种情况?

备注:

  • 我在用SequentialRunner
  • 我不使用is_async cli选项
  • 在节点执行中,我既不使用多线程也不使用多处理

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-10-23 05:49:39

事实证明,此问题是由memory-profiler库中可能存在的缺陷引起的,该错误用于kedro.extras.decorators.memory_profiler.mem_profile装饰器。

kedro装饰器利用memory_usage模块中的memory-profiler函数。它用于从python进程中对正在运行的函数使用的总内存进行示例。

关于这个问题还有一个悬而未决的问题,但目前还没有解决办法。概况介绍/问题/332

暂时我已经把装修师移走了。

票数 0
EN

Stack Overflow用户

发布于 2021-10-18 09:45:50

你好,伊尔斯皮涅罗,很难弄清楚到底发生了什么。简而言之,我们并不期望Kedro会把内存从盒子里复制出来,从理论上讲,这可以由hooks.py中的一些东西引入。

不管怎样,我可以帮你减少你的内存足迹:

  1. 更经常地持久化数据,减少使用隐式MemoryDataSets
  2. 了解节点中的特定逻辑,您在Pandas中做什么?有没有一种矢量化的方法来做你想做的事?
  3. 如果您一次又一次地使用相同的数据集,请使用CachedDataSet
  4. 将管道分解成较小的管道,并分别运行每个部分。主要是为了缩小问题范围。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69592125

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档