가만히 보고 있으면 심심할 때마다 병렬작업 왜 안 하냐 엄청난 성능 향상을 가져오지 않느냐라고 묻는 글이 수시로 올라오네

컨텍스트 스위칭은 어마어마하게 비싸다.

그리고 이전 결과를 통해 다음 연산을 진행하는 걸 이렇게 저렇게 버무려서 싱글 스레드 연산을 획기적으로 빠르게 처리한다?
이걸 가능하게 하는 사람들은 진짜 천재 인정이다. 아니, 불가능하다.
스레드 수가 갈수록 늘어남에도 왜 CPU 에 계속 새 명령어가 추가되고 싱글 스레드 성능 향상을 사람들이 주목할까?

스레드를 무슨 램 마냥 다다익선으로 보는 사람들이 많은데 실제 개발을 해보지 않은 티가 너무 많이 나는 생각이다. 설계를 아무리 잘해도 스레드를 딱딱 나눠서 병렬로 처리할 수 있는 부분은 많지 않다.

서버가 아닌 특히 일반 유저 타겟 앱에서는 요청 처리가 딱딱 나뉘는 그런 이상적인 상황 자체가 별로 없다는 거다.

나눌 수 있더라도 이로 인해 추가로 발생하는 복사, 처리 상의 비효율성, 캐시미스 등을 다 합치더라도 벤치마크를 통해 확실히 성능이 향상됐는지 검증해야 하고 성능 향상이 미미할 수 있다.


당장 시스템 콜도 컨텍스트 스위칭으로 인한 성능저하 때문에 캐싱하고 이런저런 테크닉을 쓰고 별 지랄을 다 하는 분야도 있는데 좀 상식적으로 생각을 하자. 학교에서도 열심히 가르쳐주잖냐