- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在开发一种工具,用于对用户定义的函数进行一些数值分析。这个想法是用 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/
所以我们有一个相当大的数据库和一个搜索大量文档的存储过程。根据上下文,它要么获取数百万个文档,要么只获取一百个。 重点是,对于百万和一百个文件,该过程需要 30 秒,这是超现实的。如果我添加 OPTI
我正在制定从不再在公司工作的人那里继承的更新程序。 我发现程序在 header 后包含 WITH RECOMPILE 选项。在注释中它说添加它是“为了减轻阻塞造成的超时” ALTER PROC ups
我知道WITH RECOMPILE选项会强制优化器重建存储过程的查询计划,但是您希望什么时候发生这种情况? 关于何时使用WITH RECOMPILE 选项、何时不使用的经验法则是什么? 将其放在每个存
在centos中./configure asterisk后我输入make命令但是出现了以下错误 /usr/bin/ld:/usr/local/lib/liblua.a(lapi.o): 创建共享对象时
super 开发模式启动成功,但是我修改代码并尝试从浏览器重新编译后,GWT报如下错误: GET /recompile/de.marketmaker.iview.mmgwt.mmweb.Mmweb
我试图在Ubuntu 14.04.4中使用以下命令编译Blender BPY: mkdir ~/blender-git cd ~/blender-git git clone http://git.bl
当我编译我的类时,我收到这些警告: Note: JSONLoader.java uses unchecked or unsafe operations Note: Recompile with -xL
我有一个返回记录类型的存储过程。如果我更改此存储过程返回的表(假设我添加了一列),我必须断开我的数据库 session 或重新运行 CREATE OR REPLACE。如果我不这样做,我将得到错误 W
我正在尝试让curl 在我的Oracle Linux 操作系统上运行,但遇到了一些困难。我正在使用 Apache + Django 组合服务器加载 phpinfo() 页面。此外,我已确保取消注释 p
我正在 Ubuntu 13.10 上安装一些 OpenCV,看起来有些不愉快。我经历了几个版本和安装方法,当我执行“make”或“make -j4”时,make trucks 一直运行到 /usr/b
HTML: 问题: 我为大量的 obj 内置了翻页功能。这意味着 arr 的值,代表 obj 的当前页面,将会改变。但是,status-stored-in="obj" 部分中的 obj 不
我正在为我的 emacs 安装 org-mode。网上某处的教程告诉我应该执行以下步骤:c-u 0 m-x byte-recompile-directory .而且我知道我在后面的步骤( m-x by
我在尝试查询表 AVC 时突然开始遇到此错误。 ORA-04045: errors during recompilation/revalidation of PUBLIC.AVC ORA-04098:
在 SQL Server 上“重新编译”存储过程意味着什么?这应该是手动过程还是自动化过程?这个过程的优点和缺点是什么?谢谢! 最佳答案 这完全是 SQL Server 中的内部操作。 As a da
我正在尝试编译 this git-repository (分支:feature-pybind) option(BUILD_PYTHON_BINDINGS "Whether or not a binar
我已阅读以下内容: “Activity mq 需要 JRE 或 JDk(如果您打算重新编译源代码,则需要 JDK)” 我的问题是,“重新编译源代码”是什么意思? 最佳答案 也就是说,如果你想自己下载源
大家好,我的代码中有这个警告。 H:\Project\WhatsApp2\app\src\main\java\com\example\whatsapp2\ContactsFragment.java:
尽管我花了很多时间在谷歌上搜索我的困境的答案并重新阅读了我的 Java 教科书中关于泛型的章节,但我似乎无法用以下代码解决问题: public class RedBlackTree { pri
海湾合作委员会错误: relocation R_X86_64_32S against `ebx' can not be used when making a shared object; recomp
我已经下载了一些我想从源代码编译的 C++。从命令行运行 cmake ../src 和 make 后,在构建目录中,出现以下错误: /usr/bin/ld: /usr/local/lib/libBul
我是一名优秀的程序员,十分优秀!