有时,我遇到过涉及使用Java,PHP或Python创建应用程序框架或网站的编程技术,但是当需要复杂的算法时,请用C或C ++编写这些算法并在Java / PHP中将其作为类似于API的函数调用来运行/ Python代码。
我一直在谷歌搜索和搜索此内容,除非我不知道这种做法的名称,否则我似乎找不到任何东西。
简而言之,我该如何:
用C或C ++创建函数或类 将它们编译为DLL /二进制/某种形式 从-运行功能 爪哇 的PHP 蟒蛇 我怀疑必须在Java / PHP / Python和C / C ++函数之间创建JSON / XML之类的输出和输入,以便可以轻松桥接数据,但这没关系。 我只是不确定如何实现该技术,但是这似乎是一种非常聪明的方法,可以利用Java,PHP和Python的强大功能,同时将非常快速的编程语言用于大型,复杂的任务。
我想到的另一个想法是,如果我仅使用Java / PHP / Python中的文字来创建函数,它的运行速度是否与C差不多?
我要在C / C ++上使用的特定任务是大型循环,ping数据库和分析地图。到目前为止,还没有任何工作开始,这全是理论。
Java中使用C/C++,很大程度上是为了提高性能。建议看看JNI NDK相关开发。 https://www.cnblogs.com/ljxt/p/11612914.html
您可以使用Boost.Python轻松地使用自定义C ++代码扩展python脚本,有关更多详细信息,请访问此网站:http : //www.boost.org/doc/libs/1_50_0/libs/python/doc/
这是您可以使用的方式:
char const* greet()
{
return "hello, world";
}
#include <boost/python.hpp>
BOOST_PYTHON_MODULE(hello_ext)
{
using namespace boost::python;
def("greet", greet);
}
您需要将此编译为共享库。您将在Windows上获得.dll,在Linux上获得.so。该库将包含必要的代码以使其可用于python。使用示例:
>>> import hello_ext
>>> print hello_ext.greet()
hello, world
以下是更多示例:http : //www.boost.org/doc/libs/1_50_0/libs/python/doc/tutorial/doc/html/index.html
使用Boost.Python时,如果不使用弱动态链接,请记住将共享对象链接到python。PHP和Java也有类似的东西。
至于其他语言,我从未在Java中使用自定义共享库,而在PHP中使用了它,而使用本机Api则很麻烦。我发现用swig方式更愉快。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。