7000만 line의 POS tagged data에서 POS tag를 떼려고 python으로 코드를 짜서 돌리는데
겁~~~~~~~~~~나 느렸다.
너무 느려서 검색해보니까 아래와 같이 재밌는 분석 결과가 있더라
https://www.acmicpc.net/blog/view/57
순위 | 언어 | 출력 방법 | 평균 (초) |
---|---|---|---|
1 | C11 | fwrite | 0.4423 |
2 | C++17 | ios_base::sync_with_stdio(false); cout << i << '\n'; | 0.827 |
3 | C++17 | ios_base::sync_with_stdio(false); cout.tie(NULL); cout << i << '\n'; | 0.8272 |
4 | C++17 | printf("%d\n",i); | 0.8614 |
5 | C11 | printf("%d\n",i); | 0.9118 |
6 | C++17 | cout << i << '\n'; | 0.9229 |
7 | Java | BufferedWriter, bf.write(i + "\n"); | 0.9581 |
8 | PyPy | for i in xrange(1,n+1): sys.stdout.write(str(i)+'\n') | 0.9847 |
9 | C++17 | s += to_string(i) + '\n';를 이용해 문자열 하나로 만든 다음, 마지막에 cout << s << '\n'; | 1.1507 |
10 | Java | StringBuilder를 이용해 문자열 하나로 만든 다음, System.out.println(sb); | 1.1881 |
11 | Java | BufferedWriter, bf.write(Integer.toString(i)); bf.newLine(); | 1.2556 |
12 | PyPy3 | for i in range(1,n+1): sys.stdout.write(str(i)+'\n') | 1.3722 |
13 | PyPy | print '\n'.join(map(str,xrange(1,n+1))) | 1.3738 |
14 | PyPy | sys.stdout.write('\n'.join(map(str,xrange(1,n+1)))) | 1.3772 |
15 | PyPy | for i in xrange(1,n+1): print i | 1.4968 |
16 | Python 2 | print '\n'.join(map(str,xrange(1,n+1))) | 1.7621 |
17 | Python 2 | sys.stdout.write('\n'.join(map(str,xrange(1,n+1)))) | 1.7658 |
18 | Java | PrintWriter | 1.954 |
19 | Python 3 | print('\n'.join(map(str,range(1,n+1)))) | 2.3312 |
20 | Python 3 | sys.stdout.write('\n'.join(map(str,range(1,n+1)))) | 2.337 |