[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[jfriends-ml 10097] Re: Java 言語で学 ぶデザインパターン入門第 6 回議事録
高橋(智)です。
snip
> ・synchronizedがないappendは本当に速いのか?
> がありますが、気がむけばしらべてみたいと思います。
snip
以下に書いた java.lang.StringBuffer と 自作の CustomStringBuffer では、
append(String) するのは CustomStringBuffer のほうが速いのですが、
Stringを取得する際に CustomStringBuffer がとても遅くなるようです。
String を返す toString()メソッドの実装と、java.lang.Stringクラスのコンス
トラクタに秘密があるようです。
CustomStringBuffer が使用している
public String(char value[], int offset, int count)
というコンストラクタは、引数チェックとchar配列のコピーがある分だけ遅いよう
です。(^^;
-------------------------------------------------------------------
public final class StringBuffer implements java.io.Serializable {
private char value[];
private int count;
private boolean shared;
public synchronized StringBuffer append(String str) {
...
...
}
public String toString() {
return new String(this);
}
}
class CustomStringBuffer {
private char value[];
private int count;
public void append(String str) {
...
...
}
public String toString() {
return new String(value, 0, count);
}
}
-------------------------------------------------------------------
--
高橋智宏
Java読書会( http://www.t3-jpn.com/bof/ )
T3-Japan( http://www.t3-jpn.com/ )