我正在撰写关于XS的演讲,我需要知道社区什么时候认为适合XS。
答案 0 :(得分:10)
我至少可以想到使用XS的三个理由:
原因1很明显,不需要解释。
当你真的需要理由2时不太明显。通常,您最好先查看代码的结构。您应该只调用原因2,如果您有profiled your code并且benchmark和test suite来证明XS代码更快更正确。
原因3是一个危险的原因。很少有人真的需要考虑Perl的胆量来做某事,但至少有one valid case。
答案 1 :(得分:3)
在少数情况下,更好的内存管理是使用XS的另一个原因。例如,如果您有一个非常大的某些相似类型的对象块,则可以通过XS更有效地管理它。例如,KinoSearch
将此标记用于标记,其中大字符串中的开始和结束偏移可以通过XS更有效地管理,而不是作为一个巨大的标量池。 PDL
还有一个内存管理方面,以及速度。
有建议将这种方法的一部分长期整合到核心Perl中,最初是因为它提供了一个更好地在线程中共享数据的机会:参见:http://openparallel.com/2011/07/05/a-new-hope-for-efficient-safe-data-sharing-between-threads-in-perl/。