小编bac*_*eer的帖子

在c/c ++中共享源文件之间变量的最佳策略是什么?

我经常要用10多个源文件编写c/c ++程序,其中需要在所有文件的函数之间共享少量变量.我之前已经读过,通常很好的做法是避免使用全局变量extern.但是,如果完全有必要使用全局变量,则此链接提供了一个很好的策略.最近,我一直在研究将所有变量包装在结构或类中并将此结构传递给不同函数的策略.我想知道人们认为哪种方式更清洁,以及是否有更好的选择.

编辑:我意识到两种语言的策略可能不同.我对仅适用于一种语言或两者兼有的策略感兴趣.

c c++ global-variables extern

9
推荐指数
1
解决办法
8442
查看次数

跟踪 Cython 封装的 C++ 中分配的内存使用情况

我有一个 Python 程序,它调用一些 Cython 代码,而后者又包装一些原始 C++ 代码。我想看看基本 C++ 代码分配了多少内存。我已经尝试过 Python 的 memory_profiler 模块,但是,它似乎无法检测到 C++ 代码分配的任何内容。我的证据是我有一个 Cython 对象,该对象又存储 C++ 对象的实例。这个 C++ 对象肯定应该占用大量内存。在 python 中,当我创建 Cython 对象的实例(并且它存储 C++ 对象的实例)时,memory_profiler 不会检测到存储的任何额外内存(或至少检测到可忽略不计的量)。

有没有其他方法可以检测Python 已由基本C++ 对象分配了多少内存?或者是否有类似于 memory_profiler 的东西,但适用于 Cython?

c++ python memory cython

6
推荐指数
1
解决办法
339
查看次数

Scipy最小化函数似乎自己创建了多个线程?

我正在使用 scipy 最小化函数。它调用的函数是用 Cython 编译的,并且具有我编写的底层 C++ 实现,但这并不重要。由于某种原因,当我运行程序时,它会创建尽可能多的线程来填充我的所有 CPU。例如,如果我运行 top,我会看到 800% 的 cpu 正在被使用,或者在 htop 上,我可以看到 8 个单独的处理器正在被使用,而我只创建了要在一个处理器上运行的程序。我认为 scipy 甚至没有并行处理功能,而且我找不到任何与此相关的文档。可能发生什么情况,有什么方法可以控制它吗?

python multithreading scipy

4
推荐指数
1
解决办法
1632
查看次数

标签 统计

c++ ×2

python ×2

c ×1

cython ×1

extern ×1

global-variables ×1

memory ×1

multithreading ×1

scipy ×1