XSとInline :: Cモジュールの違いは何ですか?これはthisという質問で誰かに言及されて私を好奇妙にしました。Perl XSとInline :: C
12
A
答えて
13
インライン:: CはXSを生成し、生成されたモジュールをビルドします。実行時にこれを行いますが、過去のビルドをキャッシュします。
インライン:: Cはおそらく使いやすいですが、いくつかの欠点があります。最初に実行すると、起動が遅くなり、実行時にファイルを作成するためのアクセス権が必要になり、モジュールをコンパイルするためのツールが必要になります。さらに、システム管理者がインストールするのが難しくなります。
生成されたXSを取得して、インライン:: Cを削除することができます。これはプロトタイピングに便利です。
2
Perlがコンパイルされると同時にインラインでCコードがコンパイルされ、ソースコードが変更されるたびに再コンパイルされます。 XSは一度コンパイルされ、バイナリはライブラリのような.soファイルとして保存されます。
PerlはCで書かれているので、XSはネイティブのPerl型とサブルーチンの仕組みを使用します。 XSを使用するモジュールは、組み込みの言語機能と同じくらい効率的に動作します。インラインではいくつかのことを行うのが難しく、コードを呼び出すときやコードから戻るときに変換ステップがあります。つまり、インラインでは必要ないときに再コンパイルしないようにして、インラインコードの変換は目立ったパフォーマンスヒットではないでしょう。
最後に、XSを書くと、モジュールをパッケージしていることが前提です。 Perlの勇気とモジュールのパッケージ化が必要な設定と知識がたくさんあります。 PerlからCライブラリを呼び出すだけであれば、Inlineを使う方が良いでしょう。
関連する問題
- 1. Perl XSガベージコレクション
- 2. Perl、C、XS - float配列をアンパック
- 3. XS:外部ライブラリの関数をPerl XSコールバックに渡す
- 4. perlモジュールのインストールClass-Load-XS
- 5. ユニコード%uXXXXのエンコード/デコードPerlのXSモジュール
- 6. Perl XS未使用変数 'Perl___notused'警告
- 7. Perl XSとPerlIOで古いライブラリを使用する
- 8. perl xs module writing - 同じxsファイル内の別の関数を使用します
- 9. CUDAデバイス側コードのC/C++ "inline"キーワード
- 10. formfield_for_foreignkeyとInline Admin
- 11. 例外:perl-JSON-XS-2.27-2.el6.x86_64にperlが必要です(:MODULE_COMPAT_5.10.1)
- 12. C/C++ intをshortとinlineに変換するasm(ARM固有)
- 13. タイプ変換perl、javascript、JSON.parse JSON :: XS - アイデアが必要です
- 14. externとinlineの使用
- 15. XS
- 16. Inline :: Cで配列リファレンスを作成して返しますか?
- 17. XSこのコードのメモリリーク?
- 18. C#tic tac toeのXsとOsを表示する
- 19. header inline with selectizeInput
- 20. ハスケルに `(Reverse(Reverse xs))〜xs`を伝える
- 21. PERL XSを使用してSTL Vectorを取り込むC++関数を呼び出す方法
- 22. Perl XSのC関数に配列を渡すにはどうしたらいいですか?
- 23. XSセクションを含むPerlをデバッグしてプログラムの流れを見ることはできますか?
- 24. inline dplyr in R Markdown
- 25. C依存Perlライブラリのデプロイ
- 26. はパッケージ::スタッシュをインストールすることはできません:: XS
- 27. MySQLデータinlineコマンド
- 28. Jquery No Conflict Inline
- 29. simple_form multiple inputs inline
- 30. React - inline onfocusプレースホルダー= ''
「XS」の難しい部分は、perl APIを理解することです。 XSまたはインライン:: Cのどちらを使用するにしても、あなたはそれをしなければならないでしょう。 – jrockway
プロトタイプ作成にはInline :: C、デプロイメントにはXSを使用するための実験的なInlineX :: XSです。 – tsee