性能问题:“java.text.MessageFormat.format”vs“StringBuilder”
我想知道MessageFormat
或StringBuilder
类的比较。 假设一个例子我有一个字符串。 对于性能明智的哪一个很快: java.text.MessageFormat.format
或StringBuilder("Test ").append("Hello ")
?
String txt = java.text.MessageFormat.format("Test {0}"," Hello") String txt1= new StringBuilder("Test ").append("Hello ")
我只是想知道在最佳实践或性能明智的情况下使用哪一个
亲自尝试一下:
long start = System.nanoTime(); String txt = MessageFormat.format("Test {0}"," Hello"); System.out.println("MessageFormat: " + (System.nanoTime() - start) + " ns"); start = System.nanoTime(); String txt1 = new StringBuilder("Test ").append("Hello").toString(); System.out.println("StringBuilder: " + (System.nanoTime() - start) + " ns");
输出:
MessageFormat:1125974 ns
StringBuilder:16705 ns
结论:
StringBuilder
工作得更快,因为它只是向现有数组添加了一些字符。
StringBuilder
只将文本附加到动态缓冲区,而MessageFormat
必须在附加数据之前解析给定的格式,然后StringBuilder
比MessageFormat
更有效。