問題タブ [gperf]
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.
optimization - gperf で最小完全ハッシュ関数を見つける
gperf が自分のプロジェクトに適していることがわかり、現在、生成されたテーブルのサイズを最適化する方法を探しています。スイッチ -i と -j は決定論的にテーブルの長さに影響を与えるため、これらの値を反復処理して最小のテーブル長を見つける小さなスクリプトを作成しました。スクリプトは、現在の最小テーブルを取得するための -i 値と -j 値、およびスクリプトの終了時に現在試行されている値を保存するため、後で検索を続行できます。
これで、スイッチ -m が存在することがわかりました。これは、私の小さなスクリプトで行うこととまったく同じことを行うことを示しています。このスイッチを使用すると、単一の反復のみで gperf を呼び出すよりもはるかに高速になると思います。しかし、gperf ヘルプで見つけることができなかった gperf 呼び出しを置き換えるために、2 つのことを知る必要があります。
- -m スイッチを使用した場合に -i と -j が試される場合、どの値が試されますか?
- -i と -j のどの値が実際に使用されているか、つまり、現在の gperf 呼び出しで検出されたテーブルの長さの最小値につながる値を知るにはどうすればよいですか?
c - プロファイル C コードの実行率 (行ごとの注釈)
いくつかの C コードをプロファイリングし、各行または少なくとも各ブロック (while/if-else/for-functions) などで実行時間の割合を含む注釈付きファイルを取得する必要があります。
これまでのところ、valgrind(callgrind) と gperf およびその他のツールについて調べてきました。これまでのところ、私が得るものは
- 実行回数など、各関数またはソースコードの行のカウント。
- またはカウントの割合。
- または、各関数呼び出しにかかる実行時間。
ただし、カウントではなく実行時間の割合が必要であり、それがソースコードの各行または少なくともすべてのブロック(while/if-else/for-functions)に対して必要な場合。
誰かが私にできる方法を教えてもらえますか?
ありがとう、
python - Python ライブラリ snudown をインストールしようとすると、gperf エラーが発生する
gperf オプションの出力で、'output' のスペルが間違っていることに気付くでしょう。--output、--oput、-o など、考えられるすべての組み合わせを使用するように snudown の setup.py を変更しようとしましたが、それでも使用方法のメッセージが表示されるだけです。
私は多くのことを試しましたが、うまくいかないようです。
また、それが役立つ場合、私が使用している gperf のコピーは次の場所にあります