红宝石中的ffi和mri c扩展之间有什么权衡?
答案 0 :(得分:5)
一个显而易见的权衡是MRI C扩展仅适用于MRI,而FFI扩展目前适用于MRI,YARV,Rubinius和JRuby,并且将来可能也适用于IronRuby,MagLev,MacRuby,SmallRuby,tinyrb和RubyGoLightly。
答案 1 :(得分:3)
ffi更慢。此外,ffi不能使用任何“本机C”代码,除非您将其与编译结合使用,例如使用ffi-inliner。
ffi对VM的友好程度要高得多。