Tested on my
iMac (27-inch, Late 2012)
Processor : 3.2 GHz Intel Core i5
Memory : 16 GB 1600 MHz DDR3
Name | 数字加計算(100万回) ms | 文字列連結(100万回) ms | 備考 |
---|---|---|---|
c | 2 | 10 | strcpy |
cpp | 2 | 22 | std::string.append string+string leads to no response |
go | 0.5 | 13 | bytes.Buffer.WriteString strings.Join spends 80ms+ NOTICE: in fact "go run" waste much time, it can be proved by exec "time go run test.go" on your shell |
java 6 | 6 | 35 | StringBuilder |
OBJC | 2 | 45 | NSString stringByAppendingString:TIMEOUT NSMutableString appendFormat:246ms NSMutableArray componentsJoinedByString:129ms NSMutableString appendString:63ms CFMutableStringRef appendString:52ms CFStringRef[]=>CFArrayRef join appendString:45ms * the speed under command line & iOS simulator are almost same. |
php 5.4 | 36 | 56 | with APC ./test.php but not php test.php |
swift 2.1.1 | 5 | 62 | swiftc test.swift -o test ./test |
nodejs 5.5.0 | 2 | 65 | str becomes 1.5 times faster than 0.8 |
scala 2.0 | 4.5 | 76 | no java.lang.stringBuilder no response!!! |
nodejs 0.8.22 | 2 | 95 | |
ruby 2.0.0 | 141 | 185 | str1 << str2 : 185 str+str no response |
lua 5.2.1 | 40 | 225 | table.insert/concat |
groovy 2.2.1 | 239 | 227 | str<<=str2 older version have to use java.StringBuilder? |
python 2.7.2 | 213 | 247 | arr.append->join pyc has almost a same result |
perl 5.12 | 144 | 288 | |
ruby 1.8.7(REWROTE) | 140 | 286 | arr.join |
js/ff22 | 2 | 34 | (+ on ff is amazing), innerHTML is pretty fast it does not mean html render is fast either. |
js/chrome | 2 | 110 | |
js/safari6 | 62 | 112 | |
js/opera12 | 180 | 250 |