ある講義で使用するいくつかのファイル形式 ( ARFF )用に、実践的な再帰的な純粋な python パーサーを作成しました。現在、私のエクササイズ提出の実行が非常に遅いです。私のパーサーで最も多くの時間が費やされていることがわかりました。多くの CPU 時間を消費しています。HD がボトルネックではありません。
Python でパーサーを作成するには、どのようなパフォーマンスの高い方法があるのだろうか? Cで書き直したくないので、jythonを使おうとしましたが、パフォーマンスが大幅に低下しました。私が解析したファイルは部分的に巨大 (> 150 MB) で、非常に長い行があります。
私の現在のパーサーは、1 文字の先読みしか必要としません。ここにソースを投稿しますが、それが良いアイデアかどうかはわかりません。やはり提出期限はまだ終わっていません。ただし、この演習の焦点はパーサーではありません。使用したい言語を選択でき、Java 用のパーサーが既に用意されています。
注: 私は x86_64 システムを使用しているため、サイコ (および PyPy のようにも見えます) はオプションではありません。
更新: パーサー/ライターをbitbucketにアップロードしました。