问题标签 [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.

0 投票
1 回答
247 浏览

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 中完成吗?

0 投票
2 回答
345 浏览

perl - 使用 inline::C 来加速数学是否值得

我一直在研究一个 perl 程序来处理大量的 dna。它准确地输出了我需要的东西,但是它比我想要使用 NYTprof 花费的时间要长得多,我已经缩小了主要问题区域,将我的值加在一起的循环。会使用 inline::C 进行数学运算使我的程序更快还是我应该接受速度并继续前进?还有其他方法可以提高速度吗?是我的程序和它将运行的输入以及已输入默认值的可执行文件。

0 投票
1 回答
229 浏览

c - 如何强制 Inline::C 链接到旧库?

我正在处理一个仅与旧版本的共享系统库兼容的 Perl 模块。碰巧我的系统上有旧版本的库,但我不知道如何在Inline::C不删除当前最新库的情况下强制 Perl 与旧库链接。

我正在尝试使用Device::USB,它与系统库兼容libusb 0.1但与. 我的系统确实有已安装,但在尝试安装模块时始终失败。此故障似乎是由 Perl 链接到库而不是库引起的。libusb 1.0libusb 1.0 libusb 0.1make testDevice::USBlibusb 1.0libusb 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

0 投票
2 回答
186 浏览

perl - 需要将 Perl 解包转换为 Inline::C AV*

我正在努力将 Perl 转换unpack为 Inline::C

到目前为止,这是我所拥有的,但我是 Inline::C 新手,所以我不知道下一步该做什么:

任何人都可以提供如何做到这一点的提示吗?

0 投票
3 回答
1255 浏览

perl - Perl 内联 C:将 Arrayref 传递给 C 函数

我无法使用 Inline C 将 arrayrefs 传递给 C 函数。我需要一些帮助。

首先,为了证明我可以让内联 C 工作,我将一个标量值传递给 C 函数:

并运行它:

现在做同样的事情,但使用 arrayref:

运行:

任何想法我做错了什么?非常感谢帮助!

0 投票
1 回答
185 浏览

c - 在 C 优化中比较 2 个字符串数组以进行匹配

我有一个 perl 脚本,它有 2 个数组,1 个带有键,1 个带有子字符串。我需要检查 1 个数组的子字符串是否在键数组中匹配。记录的数量巨大,可以数以百万计,所以我使用 Inline:C 来加快搜索速度,但是处理记录仍然需要几个小时。

--Perl 部分

--C部分

如果有人可以帮助优化搜索,那就太好了。谢谢。

注意:添加了注释以帮助每个变量内部的内容。

0 投票
1 回答
194 浏览

perl - Perl Inline::C: 是否需要 Inline_Stack_Vars 等来避免内存泄漏(生物序列字符匹配)

我的问题与工作内联 C 代码有关:是否有必要使用内联堆栈函数 (Inline_Stack_Vars) 来传入和传出变量,或者在这种情况下只修改变量是否合适?

为了显示生物序列数据,我只需要显示两个对齐字符串之间的差异;例如给定这两个字符串:

我想得到这个(第二个字符串中的匹配字符替换为'.'s。

我有很多序列(数百万次 Illumina 读取),因此已转向 inline::c 进行字符匹配。以下内联代码似乎可以正常工作(将第二个参数更改为 add_matchchars 函数):

但是1)它是否相当有效(有没有更聪明/更好的方法)?2)它会泄漏内存吗?

0 投票
1 回答
325 浏览

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.

0 投票
1 回答
95 浏览

performance - 为什么使用 Inline::C 用虚拟函数替换 Perl 的 s/// 会导致显着变慢?

我有一个大约 100,000 个元素的字符串数组。我需要遍历每个元素并用其他词替换一些词。在纯 perl 中这需要几秒钟。我需要尽可能加快速度。我正在使用以下代码段进行测试:

我知道这实际上并没有替换测试字符串中的任何内容,但它仅用于速度测试。

我寄希望于Inline::C。我以前从未使用过,Inline::C但在阅读了一点之后,我认为它实现起来相当简单。但显然,即使调用一个什么都不做的存根函数也会慢很多。这是我测试的片段:

在我的 Linux 机器上,结果是:

纯 Perl 的速度是调用空 C 函数的两倍。完全不是我所期望的!同样,我以前从未使用过 Inline::C,所以也许我在这里遗漏了一些东西?

0 投票
2 回答
192 浏览

c - Haskell 的 inline-C 可以将 typedef 返回给函数指针吗?

我正在使用一个 C 代码库

并使用了 Haskell 代码

不幸的是,我从 inline-C 代码块中得到一个错误,它基本上说:

那么我正在做的事情甚至可能使用 inline-C 吗?