Iは、次のようなクラスがある:プロセッサーコストが最大になるのはどれですか?
outBuffer = new String(buffer);
bfrFile.print(outBuffer);
sysOutWriter.append(outBuffer);
ケースB:
for(byte bt : buffer) {
charBuffer = (char) bt;
bfrFile.print(charBuffer);
sysOutWriter.append(charBuffer);
}
(
INSERT CODE HERE
エリア)実装の2つの方法
ケースAと
private class verifierListener implements SerialPortEventListener {
String outBuffer;
char charBuffer;
public void serialEvent(SerialPortEvent event) {
if (event.isRXCHAR()) {//If data is available
timeOut = 1000;
lastReadTimer = System.currentTimeMillis();
if (event.getEventValue() > 0) {//Check bytes count in the input buffer
try {
byte[] buffer = verifierPort.readBytes(event.getEventValue());
//INSERT CODE HERE
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
コンパイルと実行の両方がサポートしているものを実行するすべきだ。しかし、私は可能な限りシームレスにこのコードを実行しようとしているので、私はおそらく低価格のPCで送信されたデータの損失を危険にさらすことはありません。
文字列の初期化により、ケースAにオーバーヘッドが増えることが想定されていますが、削除する前に確かめたいと思っていました。
どちらのクリーナーがクリーナーであるか、それぞれの処理コストを判断する方法はわかりますか?
これはあなた自身で簡単に判断できます。それぞれのメソッドでスタンドアロンのテストケースを構築し、実行時間を60秒以上にするのに十分な時間ループごとに実行します。次に、もう一方の方法を使用して、どちらが速く実行されるかを確認します。 – Mitch