5

たぶん、Dランタイム/ GCは、関数が呼び出されるたびに初期化して削除する必要があります。これは、文字列からローワー、urlencodeなどの小さな関数を追加するのに役立たない方法です。方法がわかりません。これはまだ機能しますが、Cでいくつかの拡張機能を作成しました。

4

2 に答える 2

4

はい、Dランタイムは、Dプログラムの起動時に初期化する必要があり、(使用するライブラリに応じて)静的コンストラクターを呼び出す必要があります。最小限ですが、あなたが言ったように、それは小さな機能には非効率的です。

druntimeはオープンソースです。これがdruntimemain関数です。

(を使用して)Cインターフェイスを介して関数をエクスポートし、extern(C)それらを呼び出す場合は、ランタイムを起動する必要はありませんが、GCを使用したり、静的コンストラクターなどに依存したりしないでください。

于 2012-09-14T16:44:50.140 に答える
2

それは本当に、本当にあなたのユースケースに依存します。

Dには、メモリ使用率、CPU使用率、システム負荷などを表示するスクリプトがいくつかあります。ファイルの最初の行として#!/ usr / bin / env rdmdを使用してスクリプトとして実行し、実行可能にします。

スクリプトは最初の実行時に1回コンパイルされ、その後、キャッシュされた実行可能ファイルが2〜3秒ごとに実行されて、集計が更新されます。

それらは、ジョブを完了する前に数ミリ秒だけ実行され、再度実行されるまでシャットダウンします。(とにかく何も解放する必要がないので、GCをオフにしました。)

ええ、それらを使用するにはコストがかかります。いいえ、それは素晴らしいことではありません。はい、Pythonと言うよりも桁違いに優れています。そして、人々は私がDを使用していることにPythonを使用しています。私は、CまたはC++でパフォーマンスが向上する可能性があると主張しているわけではありません。

私のユースケースでは、それは本当に問題ではないと主張しています。

于 2012-11-20T04:22:01.387 に答える