首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >清理Stockfish使用的内存而不关闭主程序

清理Stockfish使用的内存而不关闭主程序
EN

Stack Overflow用户
提问于 2021-07-31 23:40:19
回答 1查看 69关注 0票数 1

我正试图通过一个静态库将Stockfish实现到我自己的项目中。但我遇到了一个问题。河豚在名称空间" Stockfish“中使用了一些全局变量,并且在我的项目中的某个点,我希望销毁我从Stockfish中使用的所有内容,并在稍后重新初始化。

例如,Stockfish将选项存储在Stockfish::Options的全局对象中。当我第一次初始化斯托克鱼的时候,一切都很好。但是,我想要实现的是结束Stockfish并从变量中删除它的所有成员,而不关闭我的项目,并在我需要的时候重新初始化它。

据我所知,斯托克菲斯并不是为此而设计的。它是希望“启动发动机,结束发动机时,主程序关闭。”

所以,我相信我必须经历每一次初始化,并找到适当的方法来结束它们。在这样做之前,我想问三个问题:

  • ,我能告诉我的程序清理“这个特殊的.lib”所使用的内存吗?
  • ,我能写一段代码来删除由命名空间初始化的整个内存吗?例如,由于Stockfish是整个代码的命名空间,我可以执行类似于“删除Stockfish;?
  • ”之类的操作吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-07-31 23:50:13

该工具不便于释放特定库所使用的内存。

  • 静态库边界没有记录,在运行时也不存在(调试符号除外)。

分配程序

  • 一般不记录分配的位置。

  • 名称空间也是如此。除调试符号外,名称空间在运行时不存在。不能引用命名空间.

有两个简单的解决方案:

  1. 在一个单独的进程中运行Stockfish。当进程退出时,将释放所有内存。这是一个简单的方法。--

  1. 修改Stockfish,这样您就可以释放内存。查找所有全局状态和所有分配,并确保可以释放这些分配并将全局状态重置为初始值。这是一条艰难的道路。--
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68606517

复制
相关文章

相似问题

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