34P by xguru 2023-06-29 | favorite | 댓글 11개
  • Windows NT 3.51 을 실행하는 예전 컴퓨터와 Windows 11을 실행하는 새 컴퓨터의 속도를 비교한 비디오를 트위터에 공개했는데 꽤 많이 바이럴 되었음
    • 둘다 같은 동작을 함. 코맨드 프롬프트, 탐색기, 노트패드, 페인트 앱을 열고 닫는 것
    • 오래된 컴퓨터에서는 즉시 실행되지만, 새 컴퓨터에서는 느림
  • 현대 컴퓨터 사용자 인터페이스 지연은 매우 나쁘고 악화되고 있음
  • 비교에 사용된 하드웨어들이 데스크탑 과 노트북(서피스고)로 불공정하다는 얘기가 있음
  • K7-600 머신에 윈도우 2000을 설치하고, 맥프로 2013(6코어 Xeon + 32GB)에 윈도우 11을 설치하여 다시 비교했지만 결과는 비슷

컴퓨터의 발전

  • 2000년대 이후 많은 방향에서 발전했음 : 놀라운 그래픽과 고해상도 모니터, 초고속 네트워크, 실시간 비디오 편집등
  • I/O 쪽에서도 많이 발전해서 예전 시스템에서 디스크 I/O는 항상 가장 약한 부분 이었음
    • 플로피는 불안정하고 느렸고, CD/DVD 는 좀 더 믿을만 했지만 역시 느리고, HDD는 많은 것의 병목이었음
    • 랜덤 I/O는 물리적 한계에 도달하기 시작
  • SSD가 출현하고 데스크탑에도 사용되면서 이 랜덤 I/O 문제를 해결하기 시작
    • 갑자기 모든게 빨라졌음. 부팅, 게임 로딩, 수많은 파일이 있는 폴더 열기,..
  • 새 하드웨어 설치도 편해지고, 무선 연결이 보편화 되고, 텍스트/앱들의 국제화(Unicode는 쉽지도 저렴하지도 않은 것은 인정)
  • 많은 부분에서 상황이 개선되고, 어느때보다 힘을 가지게 됨. 그렇지 않았다면 2000년대에는 상상도 못했을 작은 휴대폰에서 ML을 이용한 사진처리 같은 작업을 수행할 수 없었을 것

끔찍한 지연시간

  • 하지만 이런 발전중 어느것도 UI 레이턴시가 오늘날처럼 극도로 느린 이유를 설명하지 못함
  • 하드웨어의 발전은 이런 상황을 개선시켰어야함

예제

  • 메모장은 최근까지 네이티브 앱이었고 빨리 실행되었는데, UWP 앱으로 재작성 되면서 느려졌음. 엄청 느려졌지면 여진히 기능은 부족함. 사용자에게 아무런 이득이 없는 속도 저하
  • 윈도우 터미널은 예전보다 훨씬 좋지만, 눈에 띌 정도로 무거움. 파워쉘을 추가하면 최고급 하드웨어를 사용하지 않는 이상 새 터미널창 뜨는데 몇초가 걸릴수 있음
  • MacOS는 윈도우보다는 낫지만, 역시 이슈가 있음. 설정 창 여는 속도가 예전 머신이 훨씬 빠름
  • 리눅스는 아마도 이런 이슈로부터 가장 적게 영향 받음. 11년전 PC에서도 2023/4월에 릴리즈된 Fedroa Linux 38은 잘 실행됨. 하지만 이것도 착각일뿐, Linux 전용으로 개발되지 않은 최신앱들을 실행하면 앱 시작시간이 느려지고, 일반적으로 성능이 저하됨
  • 내가 가장 큰 충격을 받은 것은, 2009년에 구글에 입사했을때였음
    • 당시 구글 검색과 Gmail은 뛰어난 성능을 자랑하며 타의 모범이 되었음
    • 하지만 내부에서 사용하는 인하우스 커맨드 라인 도구들이 얼마나 느린지를 보고 큰 충격을 받았음
    • 그들이 어떤 대가를 치르더라도 웹앱을 끊임없이 밀어붙인 덕분에 오늘날 우리가 처한 상황을 만들었다고 생각함

원인

  • 왜 이 모든일이 벌어졌을까? "Bloat"라고 말하기는 쉽지만, 정의하기는 어려움
    • Bloat는 정당화 될수 있기 때문: 사람마다 Bloat에 대해서 생각하는게 다름
  • 느리게 만드는 것은 "우선순위" 때문임
    • 누구도 게임/영상 트랜스코딩 등 중요한 경우를 제외하고는 더 이상 성능을 우선시하지 않음
    • 사람들(회사)이 우선 순위에 두는 것은 "개발자 시간"임 : Rust 와 Elctron
  • 네이티브 앱을 각각 개발하는 것은 중복 작업이기 때문에 Electron을 이용함
    • 이용하면 쉽지만, 이게 데스크탑 지연시간에 큰 영향을 줌
    • 1Password나 Spotify 사례처럼 통합된 경험을 주고, 비용을 줄이기 위해 Electron으로 재작성되었음
    • 하지만 비용절감은 회사를 위한 거지, 사용자를 위한게 아님
    • 이 비용절감은 매일 사용하는 우리에게 세금을 부과하는 것
  • 레이턴시를 늘리는 또 다른 결정은 Managed & Interpreted 언어의 대규모 수용
    • JDK/CLR이 장기간 실행되는 프로세스를 최적화는 잘 하지만, 빠른 시작 시간은 그들이 잘 관리하지 못하는 것

1회성 개선사항이 사라졌음(One-off improvements eaten away)

  • 끝으로 하드웨어 발전으로 돌아가 비관적인 얘기를 하고 마무리 하자면
  • SSD가 가져다 줬던 특별한 개선은 일회성 변화였음
    • HDD는 계속 빨라졌지만, 데스크톱에 필요한 빠른 랜덤 I/O를 제공하지는 못했음
    • SSD의 전환은 다른 차원의 개선을 가져왔지만, 이런 이점은 단 한번만 누릴수 있었음
    • 이런 혁신적 경험을 주는 다른 기술은 없음
    • 따라서 이 새 기술이 가져다준 혜택이 부주의한 소프트웨어에 의해 사라지고 나면 우린 원점으로 돌아가게 될 것
    • 물론 SSD는 점점 빨라지고 있지만, HDD 에서 SSD로 바뀔때와 같은 엄청난 차이를 주지는 못함
  • SSD 없는 최신 버전의 윈도우/맥 을 사용해보면 직접 확인이 가능
  • 그래서 애플 실리콘에 대해 걱정하게 됨
    • M1 출시때의 뛰어난 성능, 매우 긴 배터리 수명, 팬소음 없음을 기억하나요?
    • 우리가 부주의한 행보를 계속한다면 이 장점들도 사라질 것이고, 그때가 되면 너무 늦어 버릴 것
  • 기존 애플리케이션에 성능을 보강하는 것은 기술적으로 매우 어렵고, 조직내에서 우선순위를 정하는 것도 거의 불가능함
  • 그럼, 컴퓨터 아키텍트가 다른 혁신적인 기술 변화로 우리를 구할수 있을까? 난 그런 것에 의존하고 싶지 않음. 그런 변화가 가능하지 않을수도 있기 때문이 아니라, 그런 변화가 필요하지 않기 때문

GN⁺ 가 요약한 버전 (기록을 위해 남겨둡니다)

  • 트위터 스레드가 오래된 컴퓨터와 새로운 컴퓨터의 반응성을 비교한 내용으로 8.8K 좋아요를 받았다.
  • 동영상에서 오래된 컴퓨터의 앱은 즉시 열리지만, 새로운 컴퓨터의 앱은 상당한 지연이 있었다.
  • 하드웨어 발전에도 불구하고 현대 컴퓨터의 사용자 인터페이스 지연이 왜 더 나빠졌는지 저자가 의문을 제기했다.
  • 비교의 결함이 수정되어 같은 결과가 나왔다.
  • 그래픽, 고해상도 모니터, 빠른 네트워크와 같은 기술 발전이 논의되었다.
  • 현대 컴퓨터의 사용자 인터페이스 지연은 매우 나쁘고 악화되고 있다는 주장이 제기되었다.
  • Windows, macOS, Linux에서의 느린 앱이 예시로 제시되었다.
  • 무거운 소프트웨어, 프레임워크, 관리형 언어가 지연 문제의 원인으로 제안되었다.
  • 부주의한 소프트웨어로 SSD의 이점이 상쇄되어 Apple Silicon의 미래에 대한 우려가 제기되었다.
  • 기존 애플리케이션에 성능을 개선하는 것은 기술적으로와 조직적으로 어렵다.
  • 컴퓨터 아키텍트에 따르면 혁명적인 기술 변화가 우리를 구하지 못할 수도 있다.
  • 지연 문제에 대한 원격 작업은 해결책이 되지 않는다.
  • 90년대와 2000년대의 오픈 소스 개발은 이미 완전 분산 및 비동기 작업을 가능하게 했다.
  • 컴퓨터 지연은 적어도 1977년부터 문제였다.
  • Dan Luu가 발견한 지연 면에서 가장 우수한 컴퓨터는 1983년 제품이지만, 현대 작업량에는 대응할 수 없다.

성능 대신 유지보수를 선택했고, 그 비용을 하드웨어 발전으로 메꾸겠단 생각이 여기까지 온 게 아닐까요.
2010 맥북에어가 너무 느려졌을 때, 어찌어찌 스노우레퍼드를 깔았는데, 말도 못하게 빠르더군요. 물론 실사용은 하지 않습니다만..

더 이상 회사가 성능을 우선순위로 두지 않는 다는 말이 와 닿네요.

하지만 비용절감은 회사를 위한 거지, 사용자를 위한게 아님

라는 부분이 많은 생각을 하게 되네요.

감사합니다. 공감하며 읽었습니다.
윈도우 바탕화면에서 컨텍스트 메뉴를 열면 20년 전이나 지금이나 모래시계를 보며 느리더라구요(처음 이후엔 좀 괜찮지만 너무 거슬려요).
분명 하드웨어는 빨라지는데, 소프트웨어는 그렇지 못한 거 같습니다.

비슷한 이야기를 하면서 가벼운 어플리케이션들만(아마도 linux 쪽이었던듯) 모아놓은 사이트를 본거 같은데... 막상 찾아보니 안나오네요 ㅎㅎ

감사히 읽었습니다.

WinAPI로만 구현됬던 시절의 UI가 깔끔하고 빠릿했죠.
요즘은 중구난방 UI 프레임워크들에 무슨 웹 기반 앱들.. 웹 엔진이나 프레임워크 엔진들이 올라갈려면 리소스가 많이 들죠.

GN⁺ 에 올라온 글인데, AI의 요약으로는 이해하기가 힘든 것 같아서 제가 다시 정리했습니다.

거봐요 제말이 맞잖아요 ㅎㅎ...

이세돌이 승리한 그 기분이네요... 우리의 잡시큐리티.... 아직은 괜찮겠죠? ㅠ

Hacker News 의견
  • 소프트웨어 스택에서 참된 성능을 경험하지 못한 젊은 사용자들
  • 소프트웨어 엔지니어들은 비효율적이며 병렬 컴퓨팅을 무시함
  • 비기술적인 사람들은 느린 컴퓨팅에 신경 쓰지 않음
  • 보안 조치는 데스크톱 앱의 지연 시간에 영향을 줄 수 있음
  • macOS에서 Quartz Extreme과 Metal로 그래픽 성능이 향상됨
  • 속도를 위해 소프트웨어 최적화는 중요함
  • Rust는 학습 곡선이 가파르지 않음
  • 작은 컴퓨팅 성취를 축하하는 것이 중요함
  • 우리의 하드웨어로부터 더 많은 것을 기대해야 함
  • 동적 UI는 성능 저하에 기여함
  • Linux는 저사양 하드웨어에서 빠르게 동작하지만, 크로스 플랫폼 앱은 성능이 나쁨
  • 현대적인 애플리케이션 프레임워크는 앱 시작 시간이 느려지는 원인이 될 수 있음