Chromium 규모 확인 3: 버전 간 변경량
Chromium 버전 간의 차이점 크기 확인
지난번까지는 Chromium의 규모를 LOC에서 확인했다
이번에는 Chromium 버전 간 변경량 확인
Chromium은 6주마다에 정기적으로 출시되었습니다.
거대한 소프트웨어로서는 이례적인 빈번한 릴리스를 하고 있는 Chromium 하지만, 1개의 버젼이 오를 때마다 어느 정도의 변경이 들어가 있는 것인가?
결론
버전간에 확인한 변경량
변경 내용
규모
변경, 추가, 삭제된 파일(C, C++, Assembly, Java)
2만 파일 이상
변경, 추가, 삭제된 코드(C,C++,Assembly,Java)
100만 LOC 이상
변경, 추가, 삭제된 코드의 비율
전체 코드의 약 7%
비교 대상
먼저 Chromium의 각 버전에 대한 최신 태그를 확인하십시오.
$ git show-ref --tag | sed s/refs\\/tags\\///g | sort -k2,2 -V -r | awk -F'[ .]' '!colname[$2]++{print}' | head
70aa692d68ee86d365928edd160c3575fda2b453 pre_blink_merge
b9f09110acc31d8cfcdaf9ad99994493993fc837 89.0.4388.4
5133e62bf71cdc73827e8a692f41c340fae44f0c 88.0.4324.91
5b067f298bad6ee9966e55409ae85923aeafb4dd 87.0.4280.151
8e2f4b1218732818284cc04088d9d9618b22889f 86.0.4240.261
1b92670ff184497b121d26c7ecaff6006ac1697b 85.0.4183.162
9fe9eba385acebd69c14548b73dce6126c1ae1b2 84.0.4147.142
894fb9eb56c6cbda65e3c3ae9ada6d4cb5850cc9 83.0.4103.122
690e69771fa599fb1c6e9114c5d9b1296621b86a 82.0.4085.28
39d87f902daa0d138ded056c26e63c94558829b7 81.0.4044.156
아래의 두 버전의 차이를 LOC로 확인
- 88.0.4324.91
- 89.0.4388.4
cloc --diff 는 git 커밋 간의 변화량을 조사할 수 있다
그러나 커밋 간의 서브 디렉토리를 비교하는 것은 한 번 힘들고 번거롭기 때문에, 또 하나 git 리포지토리를 준비해, 디렉토리간의 비교로 조사를 진행한다
M88용 리포지토리 준비
$ cd ~/work
$ time cp -rf chromium chromium2
real 5m32.421s
user 0m3.462s
sys 1m51.560s
$ (cd chromium/src/ && git status)
HEAD detached at 89.0.4388.4
nothing to commit, working tree clean
$ (cd chromium2/src/ && git status)
HEAD detached at 89.0.4388.4
nothing to commit, working tree clean
복사한 리포지토리에 이전 버전의 소스 코드 체크아웃
$ cd ~/work/chromium2/src/
$ git checkout 88.0.4324.91
Checking out files: 100% (46989/46989), done.
Previous HEAD position was b9f09110acc3 Publish DEPS for 89.0.4388.4
HEAD is now at 5133e62bf71c Publish DEPS for 88.0.4324.91
$ git status
HEAD detached at 88.0.4324.91
It took 2.70 seconds to enumerate untracked files. 'status -uno'
may speed it up, but you have to be careful not to forget to add
new files yourself (see 'git help status').
nothing to commit, working tree clean
두 디렉토리의 소스 코드 비교
$ time ~/work/cloc-1.88/cloc --quiet --diff --timeout=60 --diff-timeout=60 --csv chromium2/src chromium/src > cloc_diff_M88_M89.csv
7 errors:
Diff error, exceeded timeout: chromium2/src/testing/buildbot/chromium.android.json v. chromium/src/testing/buildbot/chromium.android.json
Diff error, exceeded timeout: chromium2/src/testing/buildbot/chromium.fyi.json v. chromium/src/testing/buildbot/chromium.fyi.json
Diff error, exceeded timeout: chromium2/src/third_party/blink/web_tests/external/WPT_BASE_MANIFEST_8.json v. chromium/src/third_party/blink/web_tests/external/WPT_BASE_MANIFEST_8.json
Diff error, exceeded timeout: chromium2/src/testing/buildbot/chromium.clang.json v. chromium/src/testing/buildbot/chromium.clang.json
Diff error, exceeded timeout: chromium2/src/tools/metrics/histograms/histograms_xml/obsolete_histograms.xml
Diff error, exceeded timeout: chromium/src/tools/metrics/histograms/histograms_xml/obsolete_histograms.xml
Diff error, exceeded timeout: chromium2/src/testing/buildbot/chromium.gpu.fyi.json v. chromium/src/testing/buildbot/chromium.gpu.fyi.json
real 53m22.413s
user 46m56.280s
sys 1m51.859s
타임 아웃 에러가 발생한 파일은 큰 사이즈의 xml 또는 json 파일
도구나 테스트용 파일처럼 무시하고 진행
변경량
파일 변경 수
Language
차이 파일
추가 파일
삭제 파일
합계
C++
11,082
595
1,101
12,778
C/C++ Header
5,868
552
904
7,324
HTML
1,024
1,573
1,528
4,125
자바스크립트
1,245
524
524
2,293
자바
1,434
278
367
2,079
XML
1,806
113
142
2,061
파이썬
762
231
195
1,188
Objective-C++
852
57
77
986
JSON
163
270
39
472
XHTML
0
163
148
311
기타
1,214
242
552
2,008
합계
25,450
4,598
5,577
35,625
C, C++, Assembly, Java의 4언어 파일만으로도 2만 파일 이상에 어떠한 수정이 들어 있다
Language
차이 파일
추가 파일
삭제 파일
합계
C++
11,082
595
1,101
12,778
C/C++ Header
5,868
552
904
7,324
C
47
27
5
79
자바
1,434
278
367
2,079
Assembly
36
0
0
36
합계
16,997
1,174
2,010
20,181
코드 변경량
Language
차이 코드
추가 코드
삭제 코드
합계
C++
87,921
174,648
298,045
560,614
C/C++ Header
18,329
210,391
68,542
297,262
HTML
4,393
73,967
89,078
167,438
자바스크립트
6,158
62,237
70,182
138,577
XML
9,777
51,513
73,560
134,850
C#
961
19,673
80,721
101,355
JSON
13,780
45,697
33,063
92,540
자바
6,802
30,905
45,411
83,118
파이썬
6,029
32,850
36,334
75,213
C
4,734
29,294
24,942
58,970
기타
12,662
51,463
65,147
129,272
합계
171,546
782,638
885,025
1,839,209
C, C++, Assembly, Java의 4개 언어의 차분(변경·추가·삭제) 코드가 100만 LOC를 넘는다
Language
차이 코드
추가 코드
삭제 코드
합계
C++
87,921
174,648
298,045
560,614
C/C++ Header
18,329
210,391
68,542
297,262
C
4,734
29,294
24,942
58,970
자바
6,802
30,905
45,411
83,118
Assembly
3364
8897
724
12985
합계
121,150
454,135
437,664
1,012,949
코드 변경 비율
전체의 약 7%의 코드에 차이(변경·추가·삭제)가 있다
Reference
이 문제에 관하여(Chromium 규모 확인 3: 버전 간 변경량), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/rairaii/items/cd355411da5f766926e5
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
$ git show-ref --tag | sed s/refs\\/tags\\///g | sort -k2,2 -V -r | awk -F'[ .]' '!colname[$2]++{print}' | head
70aa692d68ee86d365928edd160c3575fda2b453 pre_blink_merge
b9f09110acc31d8cfcdaf9ad99994493993fc837 89.0.4388.4
5133e62bf71cdc73827e8a692f41c340fae44f0c 88.0.4324.91
5b067f298bad6ee9966e55409ae85923aeafb4dd 87.0.4280.151
8e2f4b1218732818284cc04088d9d9618b22889f 86.0.4240.261
1b92670ff184497b121d26c7ecaff6006ac1697b 85.0.4183.162
9fe9eba385acebd69c14548b73dce6126c1ae1b2 84.0.4147.142
894fb9eb56c6cbda65e3c3ae9ada6d4cb5850cc9 83.0.4103.122
690e69771fa599fb1c6e9114c5d9b1296621b86a 82.0.4085.28
39d87f902daa0d138ded056c26e63c94558829b7 81.0.4044.156
$ cd ~/work
$ time cp -rf chromium chromium2
real 5m32.421s
user 0m3.462s
sys 1m51.560s
$ (cd chromium/src/ && git status)
HEAD detached at 89.0.4388.4
nothing to commit, working tree clean
$ (cd chromium2/src/ && git status)
HEAD detached at 89.0.4388.4
nothing to commit, working tree clean
$ cd ~/work/chromium2/src/
$ git checkout 88.0.4324.91
Checking out files: 100% (46989/46989), done.
Previous HEAD position was b9f09110acc3 Publish DEPS for 89.0.4388.4
HEAD is now at 5133e62bf71c Publish DEPS for 88.0.4324.91
$ git status
HEAD detached at 88.0.4324.91
It took 2.70 seconds to enumerate untracked files. 'status -uno'
may speed it up, but you have to be careful not to forget to add
new files yourself (see 'git help status').
nothing to commit, working tree clean
$ time ~/work/cloc-1.88/cloc --quiet --diff --timeout=60 --diff-timeout=60 --csv chromium2/src chromium/src > cloc_diff_M88_M89.csv
7 errors:
Diff error, exceeded timeout: chromium2/src/testing/buildbot/chromium.android.json v. chromium/src/testing/buildbot/chromium.android.json
Diff error, exceeded timeout: chromium2/src/testing/buildbot/chromium.fyi.json v. chromium/src/testing/buildbot/chromium.fyi.json
Diff error, exceeded timeout: chromium2/src/third_party/blink/web_tests/external/WPT_BASE_MANIFEST_8.json v. chromium/src/third_party/blink/web_tests/external/WPT_BASE_MANIFEST_8.json
Diff error, exceeded timeout: chromium2/src/testing/buildbot/chromium.clang.json v. chromium/src/testing/buildbot/chromium.clang.json
Diff error, exceeded timeout: chromium2/src/tools/metrics/histograms/histograms_xml/obsolete_histograms.xml
Diff error, exceeded timeout: chromium/src/tools/metrics/histograms/histograms_xml/obsolete_histograms.xml
Diff error, exceeded timeout: chromium2/src/testing/buildbot/chromium.gpu.fyi.json v. chromium/src/testing/buildbot/chromium.gpu.fyi.json
real 53m22.413s
user 46m56.280s
sys 1m51.859s
파일 변경 수
Language
차이 파일
추가 파일
삭제 파일
합계
C++
11,082
595
1,101
12,778
C/C++ Header
5,868
552
904
7,324
HTML
1,024
1,573
1,528
4,125
자바스크립트
1,245
524
524
2,293
자바
1,434
278
367
2,079
XML
1,806
113
142
2,061
파이썬
762
231
195
1,188
Objective-C++
852
57
77
986
JSON
163
270
39
472
XHTML
0
163
148
311
기타
1,214
242
552
2,008
합계
25,450
4,598
5,577
35,625
C, C++, Assembly, Java의 4언어 파일만으로도 2만 파일 이상에 어떠한 수정이 들어 있다
Language
차이 파일
추가 파일
삭제 파일
합계
C++
11,082
595
1,101
12,778
C/C++ Header
5,868
552
904
7,324
C
47
27
5
79
자바
1,434
278
367
2,079
Assembly
36
0
0
36
합계
16,997
1,174
2,010
20,181
코드 변경량
Language
차이 코드
추가 코드
삭제 코드
합계
C++
87,921
174,648
298,045
560,614
C/C++ Header
18,329
210,391
68,542
297,262
HTML
4,393
73,967
89,078
167,438
자바스크립트
6,158
62,237
70,182
138,577
XML
9,777
51,513
73,560
134,850
C#
961
19,673
80,721
101,355
JSON
13,780
45,697
33,063
92,540
자바
6,802
30,905
45,411
83,118
파이썬
6,029
32,850
36,334
75,213
C
4,734
29,294
24,942
58,970
기타
12,662
51,463
65,147
129,272
합계
171,546
782,638
885,025
1,839,209
C, C++, Assembly, Java의 4개 언어의 차분(변경·추가·삭제) 코드가 100만 LOC를 넘는다
Language
차이 코드
추가 코드
삭제 코드
합계
C++
87,921
174,648
298,045
560,614
C/C++ Header
18,329
210,391
68,542
297,262
C
4,734
29,294
24,942
58,970
자바
6,802
30,905
45,411
83,118
Assembly
3364
8897
724
12985
합계
121,150
454,135
437,664
1,012,949
코드 변경 비율
전체의 약 7%의 코드에 차이(변경·추가·삭제)가 있다
Reference
이 문제에 관하여(Chromium 규모 확인 3: 버전 간 변경량), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/rairaii/items/cd355411da5f766926e5텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)