1.2.99997 • Published 4 years ago

planz-uikit-hj v1.2.99997

Weekly downloads
3
License
MIT
Repository
github
Last release
4 years ago

import 와 export 방식 및 개수 별 용량 차이 분석

(1) import, export 둘다 존재 (33개 icon)

export { ReactComponent as facebook } from './facebook.svg';

import { ReactComponent as facebook } from './facebook.svg'; (for list of icons) export default { facebook, ... }

  • main.bundle stat size: 5.17 MB parsed size: 2.58 MB gzipped size: 800.22 KB

  • icon stat size: 242.7 KB parsed size: 132.09 KB gzipped size: 13.63 KB

  • icons stories (+ 35 modules) stat size: 242.7 KB parsed size: 132.09 KB gzipped size: 13.63 KB

(2) import { ReactComponent} 한번으로 named, default 모두 export (33개 icon)

import { ReactComponent as facebook } from './facebook.svg'; export { facebook, ... }, export default { facebook, ... }

  • main.bundle stat size: 5.17 MB parsed size: 2.58 MB gzipped size: 800.22 KB

  • icon stat size: 241.46 KB parsed size: 132.09 KB gzipped size: 13.63 KB

  • icons stories (+ 35 modules) stat size: 241.46 KB parsed size: 132.09 KB gzipped size: 13.63 KB

(2 - 1) import { ReactComponent} 한번으로 named 만 export (33개 icon)

import { ReactComponent as facebook } from './facebook.svg'; export { facebook, ... }

  • main.bundle stat size: 5.17 MB parsed size: 2.58 MB gzipped size: 800.03 KB

  • icon stat size: 241.17 KB parsed size: 131.66 KB gzipped size: 13.42 KB

  • icons stories (+ 35 modules) stat size: 241.17 KB parsed size: 131.66 KB gzipped size: 13.42 KB

(3) list of icons, facebook 한개만 import (1개 icon)

  • main.bundle stat size: 5.14 MB parsed size: 2.56 MB gzipped size: 799.12 KB

  • icon stat size: 210.67 KB parsed size: 113.64 KB gzipped size: 12.44 KB

  • icons stories (+ 35 modules) stat size: 210.67 KB parsed size: 113.64 KB gzipped size: 12.44 KB

(3 - 1) facebook 한개만 import (1개 icon)

  • main.bundle stat size: 4.96 MB parsed size: 2.47 MB gzipped size: 788.6 KB

  • icon stat size: 26.68 KB parsed size: 17.64 KB gzipped size: 2.65 KB

  • icons stories (+ 2 modules) stat size: 26.68 KB parsed size: 17.64 KB gzipped size: 2.65 KB

결과 분석

  1. export { ReactComponent as facebook } from './facebook.svg'; import { ReactComponent as facebook } from './facebook.svg'; export default { facebook } 방식으로 단일 아이콘을 위한 named export 와 list of icons를 위해 export default로 두번 ReactComponent as ~ 를 하는 것은 (1)번과 (2)번의 결과를 비교해 볼 때 stat size 242.7KB - 241.46KB = 1.24KB, 1.24KB/33 = 30B 의 차이가 존재하나, webpack에 의해 tree shaking 된 parsed size는 132.09 KB로 동일함을 확인할 수 있다. 다만, tree shaking 전 약간의 용량 이득과 (2)번의 방식처럼 import { ReactComponent as facebook } from './facebook.svg'; export { facebook, ... }, export default { facebook, ... } 한번만 ReactComponent as ~를 해주는 것이 코드 상 더 깔끔하므로 한번 import 후 named와 default 모두 export 하는 2방식을 사용했다.

2) 33개의 icon을 import할 때 (2)번과 1개의 icon을 import 할 때 (3)번 용량 차이는 132.09KB- 113.64KB = 18.45KB, 18.45KB/33 = 550B로 실제 icon의 용량(300~600B)과 유사한 차이가 존재함을 확인할 수 있다.

  1. list of icons를 import 할 때 (3)번과 list of icons가 없을 때 (3 - 1)번의 차이는 113.64KB - 17.64KB = 96KB 이다.
1.2.99997

4 years ago

1.2.99996

4 years ago

1.2.99995

4 years ago

1.2.99994

4 years ago

1.2.99993

4 years ago

1.2.99992

4 years ago

1.2.99991

4 years ago

1.2.9999

4 years ago

1.2.9998

4 years ago

1.2.9997

4 years ago

1.2.9996

4 years ago

1.2.9995

4 years ago

1.2.9994

4 years ago

1.2.9993

4 years ago

1.2.9992

4 years ago

1.2.9991

4 years ago

1.2.999

4 years ago

1.2.998

4 years ago

1.2.997

4 years ago

1.2.996

4 years ago

1.2.995

4 years ago

1.2.994

4 years ago

1.2.993

4 years ago

1.2.992

4 years ago

1.2.991

4 years ago

1.2.98

4 years ago

1.2.99

4 years ago

1.2.96

4 years ago

1.2.97

4 years ago

1.2.95

4 years ago

1.2.92

4 years ago

1.2.93

4 years ago

1.2.91

4 years ago

1.2.94

4 years ago

1.2.9

4 years ago

1.2.8

4 years ago

1.2.7

4 years ago

1.2.6

4 years ago

1.2.5

4 years ago

1.2.4

4 years ago

1.2.3

4 years ago

1.2.2

4 years ago