gpt4 book ai didi

Python 运行时 : recompiling and reusing C library

转载 作者:太空狗 更新时间:2023-10-29 16:03:52 24 4
gpt4 key购买 nike

我正在开发一种工具,用于对用户定义的函数进行一些数值分析。这个想法是用 Python 制作一个方便的 UI,用户可以在其中输入 C 函数,然后按下按钮 - 并接收一些输出数据。计算可能需要几分钟或几小时,因此仅使用 Numpy 的性能是 Not Acceptable 。

我尝试了以下方法:基于 Python 的 UI 调用 gcc,从用户函数编译 dll,而我在 Cython 包装中使用的基于 C 的核心算法。它可以工作,但由于无法完全卸载 python 模块,我无法重新编译用户定义的函数,直到关闭整个 UI 程序并再次运行。

我现在看到的唯一方法是将计算核心和 UI 进程分开,然后让它们通过共享内存/消息进行交互。当用户想要更新他的功能时,程序终止核心,重新编译dll并再次启动核心。

在这种情况下,您能推荐一些常见的做法吗?

谢谢!

最佳答案

Python 真的很好 multiprocessing支持(实际上不是很好的线程支持),因此您可以为每个要评估的表达式生成一个新的 python 进程,在新进程中编译和加载 dll,然后让它将结果传回父进程。当生成的进程退出时,应卸载所有内容。

关于Python 运行时 : recompiling and reusing C library,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6717111/

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