I/O는 더 이상 병목이 아니다라는 소식을 공유합니다.
---
I/O is no longer the bottleneck
November 2022
When interviewing programmers, I often ask them to code a simple program to count word frequencies in a text file. It’s a good problem that tests a bunch of skills, and with some follow-up questions, allows you to go surprisingly deep.
One of the follow-up questions I ask is, “What’s the performance bottleneck in your program?” Most people say something like “reading from the input file”.
In fact, I was inspired to write this article after responding to someone on Gopher Slack, who said, “I also note there’s a lot of extra work happening here in splitting the entire line, etc, it’s just that typically this is all so much faster than I/O that we don’t care.”
I’m not picking on him … before I analyzed the performance of the count-words problem, I thought the same. It’s what we’ve all been taught, right? “I/O is slow.”
Not anymore! Disk I/O may have been slow 10 or 20 years ago, but in 2022, reading a file sequentially from disk is very fast.
---
간단하게 정리해보자면요..
I/O는 더 이상 병목 현상이 아닙니다.
2022년 11월
프로그래머를 인터뷰할 때 나는 종종 그들에게 텍스트 파일에서 단어 빈도를 세는 간단한 프로그램을 코딩하도록 요청합니다. 많은 기술을 테스트하고 몇 가지 후속 질문을 통해 놀라울 정도로 깊이 들어갈 수 있는 좋은 문제입니다.
제가 묻는 후속 질문 중 하나는 "귀하의 프로그램에서 성능 병목 현상이 무엇입니까?"입니다. 대부분의 사람들은 "입력 파일에서 읽기"와 같은 말을 합니다.
사실 저는 Gopher Slack의 누군가에게 다음과 같이 응답한 후 이 기사를 작성하게 되었습니다. 우리가 상관하지 않는 I/O보다 빠릅니다.”
나는 그를 고르는 것이 아닙니다 ... 단어 세기 문제의 성능을 분석하기 전에 같은 생각을했습니다. 그것은 우리 모두가 배운 것입니다, 그렇죠? "I/O가 느립니다."
더 이상! 디스크 I/O는 10년, 20년 전에는 느렸을 수 있지만 2022년에는 디스크에서 파일을 순차적으로 읽는 것이 매우 빠릅니다.
---
아래는 주요내용을 요약한것이고요..
- 면접에서 종종 묻는 질문 2가지
- 텍스트 파일에서 단어를 세는 프로그램을 작성해 보세요
- 이 프로그램의 성능 병목현상은 어떤 부분인가요?
- 종종 사람들이 "파일에서 읽기" 이라는 답변을 하는데, 이젠 더 이상 그렇지 않음
- 10-20년 전에는 그랬지만, 2022년 현재 디스크에서 시퀀셜하게 읽는 것은 매우 빠름(필자도 테스트 해보기 전에는 몰랐음)
- 병목부분은 입력을 처리/파싱 해서 메모리에 할당하는 것 : 단어로 쪼개고, 소문자 변환하고, 해쉬테이블로 빈도를 세는 등의 작업
- 파이썬/고 로 413MB 텍스트 파일(킹 제임스 성경을 100번 붙인 파일)을 테스트 해봤을 때
- 읽는 것은 0.1~0.2초 면 되고, 처리가 7초에서 2초까지 걸림
- 결론적으로 "빅데이터"를 처리하는 경우 디스크 I/O는 병목이 아닐수 있음
자세한 내용은 아래 웹페이지를 방문해보시길 추천드립니다.
오늘의 블로그는 여기까지고요..
항상 믿고 봐주셔서 감사합니다.
'좋아하는 것_매직IT > 96.IT 핫이슈' 카테고리의 다른 글
Rune 프로그래밍 언어를 소개합니다. (github.com/google) (0) | 2022.11.29 |
---|---|
환경변수를 암호화하여 팀과 공유하는 오픈소스(Infisical)를 소개합니다. (github.com/Infisical) (0) | 2022.11.28 |
코딩과 시스템 스킬로 돈을 버는 다른 방법이 있을까요? (news.ycombinator.com) (0) | 2022.11.27 |
Pixelfed - 사진 공유 플랫폼 오픈소스를소개합니다. (github.com/pixelfed) (0) | 2022.11.16 |
머스크, 트위터 Blue 인증마크 구독서비스를 11/29에 재개할 예정이라고 하네요(twitter.com/elonmusk) (0) | 2022.11.16 |