首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Apache中使用C/C++

在Apache中使用C/C++
EN

Stack Overflow用户
提问于 2016-12-01 09:09:55
回答 1查看 2.6K关注 0票数 2

我和我的团队正在开发一个利用Flink的应用程序。数据将使用计算量大的数值算法进行处理。为了尽可能地优化它,我想用C/C++而不是用Java编写这个算法。

问题是:在Flink中可以使用C/C++代码吗?或者把它封装到Java库中?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-12-07 09:10:32

我从来没有特别测试过这个案子。通常,您可以使用JNI ()使用来自Java的本机代码。

这样做的目的是让Java外观公开您的本机代码,并在用Java (或其他JVM语言,如Scala)中的Flink定义的计算图中使用这些方法。您必须使Java和本机库都可以在所有涉及的节点上使用,才能完成这项工作。如果您有一个Hadoop集群,您可以利用纱线将文件随作业一起传送(docs 这里,请参阅--yarn-ship CLI选项)。

我建议您以增量的方式测试这个函数,并公开一个非常小的本机函数。此外,在性能方面不要低估Java的能力:有了一些深思熟虑的编程并利用了JIT和其他运行时优化,长时间运行的流程可以获得比具有非托管内存的类似本机代码更好的性能。

请记住,当然,使用本机代码意味着将代码的可移植性限制在编译库的平台上。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40906516

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档