哪个有更好的性能:通过系统调用从C++执行Perl脚本,还是调用DLL文件?

use*_*829 2 c++ perl

我是C++编码的新手.

我想在C++ Visual Studio Win32应用程序中执行Perl脚本(控制设备).我想知道在这方面最优化的方法是什么?

  1. 调用系统函数并执行该特定的Perl文件.
  2. 创建某种DLL并在我的C++代码中调用该DLL.

选项2我从未使用过,但如果这是最好的方法,我愿意学习和实施.

Oys*_*ein 7

我相信"最优化"的方法是将Perl嵌入到您的应用程序中.

你的第二种选择并不可行,AFAIK.由于Perl未编译,因此根据您的第一个选项,您唯一的其他选择是调用解释器(例如通过system()或 - exec()家庭调用).

现在,在代码中嵌入解释器和编写一行代码来调用外部程序之间存在很大差异,因此您必须准确考虑所需的优化程度.性能差异甚至可能很小,所以我强烈建议您首先尝试简单的方法,衡量您的成功.


Ben*_*igt 5

我同意Oystein的说法,你不太可能找到一种将perl脚本编译成共享库的好方法.

但是,从C++程序中生成perl并不是唯一的选择.您还可以在两个程序之间管道数据,使用套接字在它们之间传递数据,以及其他IPC方法.