我正在开发一个用于用户定义函数的数值分析的工具。
这个想法是用 Python 制作一个方便的 UI,用户可以在其中输入 C 函数,然后按下按钮 - 并接收一些输出数据。
计算可能需要几分钟或几小时,因此仅使用 Numpy 的性能是不可接受的。
我尝试了以下方法:基于 Python 的 UI 调用 gcc,从用户函数编译 dll,该函数由我在 Cython 包装中基于 C 的核心算法使用。它可以工作,但由于无法完全卸载 python 模块,因此我无法重新编译用户定义的函数,直到整个 UI 程序关闭并再次运行。
我现在看到的唯一方法是将计算核心和 UI 进程分开,然后让它们通过共享内存/消息传递进行交互。当用户想要更新他的功能时,程序终止核心,重新编译dll并再次启动核心。
您能建议在这种情况下有什么常见做法吗?
谢谢你!
Python确实很好多重处理 http://docs.python.org/library/multiprocessing.html支持(实际上不是很好的线程支持),因此您可以为每个要计算的表达式生成一个新的 python 进程,在新进程中编译并加载 dll,然后让它将结果传达回父进程。当生成的进程退出时,所有内容都应该被卸载。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)