Webプロジェクトには、2000個以上のJSファイルがフォーマットされています。私は、Googleクロージャコンパイラがそうであることを知っていることを知っています。実際には、JSファイル全体のフォーマット用のツールを書くために使っています。私の要件は、書式設定されたJSファイルが元のファイルと同じ場所に置き換わることです。JavaScriptファイルをフォーマットするための高性能Java APIはありますか?
私が見つけたファイルがある場合には、スレッドがコマンドに
java -jar compiler.jar --js C:/project/xyz/abc.js --js_output_file C:/project/xyz/abc.js`
、元のJSファイル(ABCを実行するための責任を負うことになります、Webプロジェクト内の各JSファイルを検索するためにJavaプログラムを書きました.js)がフォーマットされます。
しかし、私はこの方法がそれほど効率的ではないことを知ります。私はExecutorServiceを使ってスレッドを実行しています。各スレッドはファイルの書式設定を行うのに約10秒かかります。それで、2000以上のファイルを完成させるのにどれくらいの時間がかかるか想像できます。
以下はコードスニペットです。
ExecutorService executor = Executors.newFixedThreadPool(10);
// ...
for(File jsFile : root.listFiles()) {
Runnable formatThread = new FormatThread(jsFilePath.getAbsolutePath());
//execute command "java -jar compiler.jar in run(), handled by ProcessBuilder
executor.execute(formatThread);
}
私はスレッドプールのサイズを増やそうとしましたが、プログラムが開始された後すぐにCPUとメモリが消費されてしまいます。
私の質問は、Javaで書かれたアプリケーションでファイルのような大規模な数をフォーマットするための効率的な方法は何ですか
- ですか?
- 私のプログラム内のExecutorServiceの使用法は、私のユースケースに適していますか?
- 他のJava APIであれば、Javascriptファイルをすばやくフォーマットできますか?実際に私が必要とするのは、空の行とユーザーコメントを削除するだけですが、ファイルを圧縮する必要はありません。
あなたは本当に複数の無関係な質問 – byxor
'実際に私は必要なものだけで空行を削除され、ユーザーのcomments'がコードの書式設定のための良好な要件のような音はありませんを組み合わせるべきではありません。 – Azodious
私は現在、 'crem'と呼ばれるプロジェクトで、ソースコードからコメントを削除できるようにしています。今のところJavaはサポートされている唯一の言語ですが、私はまだリリースをしていないので、ここで宣伝したくありません。あなたはgithubでそれを見つけることができます。 – byxor