问题标签 [inline-c]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
perl - Perl Inline::C 在失败时返回 pdl 或 0
我正在构建一个连接到相机、拍照并将数据读入 piddle 的模块。所有这些都发生在一个 Inline::C 命令中。使用PDL 文档中的过程,我可以创建pdl *
并返回它。但是相机可能无法拍照,在这种情况下我想0
按照通常的约定返回my $pic_pdl = $Camera->TakePicture or die "Failed to take image"
。这似乎意味着我将需要使用该Inline_Stack_Push
机制,但我不确定如何正确地pdl *
将SV*
. 如果可能的话,我也想设置$!
错误代码。这可以在 Inline 中完成吗?
perl - 使用 inline::C 来加速数学是否值得
我一直在研究一个 perl 程序来处理大量的 dna。它准确地输出了我需要的东西,但是它比我想要使用 NYTprof 花费的时间要长得多,我已经缩小了主要问题区域,将我的值加在一起的循环。会使用 inline::C 进行数学运算使我的程序更快还是我应该接受速度并继续前进?还有其他方法可以提高速度吗?这是我的程序和它将运行的输入以及已输入默认值的可执行文件。
c - 如何强制 Inline::C 链接到旧库?
我正在处理一个仅与旧版本的共享系统库兼容的 Perl 模块。碰巧我的系统上有旧版本的库,但我不知道如何在Inline::C
不删除当前最新库的情况下强制 Perl 与旧库链接。
我正在尝试使用Device::USB
,它与系统库兼容,libusb 0.1
但与. 我的系统确实有并已安装,但在尝试安装模块时始终失败。此故障似乎是由 Perl 链接到库而不是库引起的。libusb 1.0
libusb 1.0
libusb 0.1
make test
Device::USB
libusb 1.0
libusb 0.1
/usr/lib
我可以看到libusb
我想使用的特定版本 ( libusb-0.1.so.4
) 在那里。我需要做什么才能专门链接到这个库而不是通用的libusb.a
?编辑Makefile.PL
?编辑.pm
文件?将额外的开关传递给make
?
我一直在阅读链接器,但是这个额外的层Inline::C
真正混淆了何时/何地可以应用 , 等export LD_LIBRARY_PATH=/usr/local/my_lib:$LD_LIBRARY_PATH
的传统技巧。-rpath
perl - 需要将 Perl 解包转换为 Inline::C AV*
我正在努力将 Perl 转换unpack
为 Inline::C
到目前为止,这是我所拥有的,但我是 Inline::C 新手,所以我不知道下一步该做什么:
任何人都可以提供如何做到这一点的提示吗?
perl - Perl 内联 C:将 Arrayref 传递给 C 函数
我无法使用 Inline C 将 arrayrefs 传递给 C 函数。我需要一些帮助。
首先,为了证明我可以让内联 C 工作,我将一个标量值传递给 C 函数:
并运行它:
现在做同样的事情,但使用 arrayref:
运行:
任何想法我做错了什么?非常感谢帮助!
c - 在 C 优化中比较 2 个字符串数组以进行匹配
我有一个 perl 脚本,它有 2 个数组,1 个带有键,1 个带有子字符串。我需要检查 1 个数组的子字符串是否在键数组中匹配。记录的数量巨大,可以数以百万计,所以我使用 Inline:C 来加快搜索速度,但是处理记录仍然需要几个小时。
--Perl 部分
--C部分
如果有人可以帮助优化搜索,那就太好了。谢谢。
注意:添加了注释以帮助每个变量内部的内容。
perl - Perl Inline::C: 是否需要 Inline_Stack_Vars 等来避免内存泄漏(生物序列字符匹配)
我的问题与工作内联 C 代码有关:是否有必要使用内联堆栈函数 (Inline_Stack_Vars) 来传入和传出变量,或者在这种情况下只修改变量是否合适?
为了显示生物序列数据,我只需要显示两个对齐字符串之间的差异;例如给定这两个字符串:
我想得到这个(第二个字符串中的匹配字符替换为'.'s。
我有很多序列(数百万次 Illumina 读取),因此已转向 inline::c 进行字符匹配。以下内联代码似乎可以正常工作(将第二个参数更改为 add_matchchars 函数):
但是1)它是否相当有效(有没有更聪明/更好的方法)?2)它会泄漏内存吗?
haskell - How to return a list or array from C block in Haskell's inline-c?
How can I get a list or array from C block in Haskell's inline-c? In other words, how to construct complex data in C and work with it in Haskell. Something like this:
I could wrap a pointer and a size in some Haskell type, but I'd like to work with the list in Haskell, print it, encode in JSON, etc.
performance - 为什么使用 Inline::C 用虚拟函数替换 Perl 的 s/// 会导致显着变慢?
我有一个大约 100,000 个元素的字符串数组。我需要遍历每个元素并用其他词替换一些词。在纯 perl 中这需要几秒钟。我需要尽可能加快速度。我正在使用以下代码段进行测试:
我知道这实际上并没有替换测试字符串中的任何内容,但它仅用于速度测试。
我寄希望于Inline::C。我以前从未使用过,Inline::C
但在阅读了一点之后,我认为它实现起来相当简单。但显然,即使调用一个什么都不做的存根函数也会慢很多。这是我测试的片段:
在我的 Linux 机器上,结果是:
纯 Perl 的速度是调用空 C 函数的两倍。完全不是我所期望的!同样,我以前从未使用过 Inline::C,所以也许我在这里遗漏了一些东西?
c - Haskell 的 inline-C 可以将 typedef 返回给函数指针吗?
我正在使用一个 C 代码库
并使用了 Haskell 代码
不幸的是,我从 inline-C 代码块中得到一个错误,它基本上说:
那么我正在做的事情甚至可能使用 inline-C 吗?