가만히 보고 있으면 심심할 때마다 병렬작업 왜 안 하냐 엄청난 성능 향상을 가져오지 않느냐라고 묻는 글이 수시로 올라오네
컨텍스트 스위칭은 어마어마하게 비싸다.
그리고 이전 결과를 통해 다음 연산을 진행하는 걸 이렇게 저렇게 버무려서 싱글 스레드 연산을 획기적으로 빠르게 처리한다?
이걸 가능하게 하는 사람들은 진짜 천재 인정이다. 아니, 불가능하다.
스레드 수가 갈수록 늘어남에도 왜 CPU 에 계속 새 명령어가 추가되고 싱글 스레드 성능 향상을 사람들이 주목할까?
스레드를 무슨 램 마냥 다다익선으로 보는 사람들이 많은데 실제 개발을 해보지 않은 티가 너무 많이 나는 생각이다. 설계를 아무리 잘해도 스레드를 딱딱 나눠서 병렬로 처리할 수 있는 부분은 많지 않다.
서버가 아닌 특히 일반 유저 타겟 앱에서는 요청 처리가 딱딱 나뉘는 그런 이상적인 상황 자체가 별로 없다는 거다.
나눌 수 있더라도 이로 인해 추가로 발생하는 복사, 처리 상의 비효율성, 캐시미스 등을 다 합치더라도 벤치마크를 통해 확실히 성능이 향상됐는지 검증해야 하고 성능 향상이 미미할 수 있다.
당장 시스템 콜도 컨텍스트 스위칭으로 인한 성능저하 때문에 캐싱하고 이런저런 테크닉을 쓰고 별 지랄을 다 하는 분야도 있는데 좀 상식적으로 생각을 하자. 학교에서도 열심히 가르쳐주잖냐
컨텍스트 스위칭은 어마어마하게 비싸다.
그리고 이전 결과를 통해 다음 연산을 진행하는 걸 이렇게 저렇게 버무려서 싱글 스레드 연산을 획기적으로 빠르게 처리한다?
이걸 가능하게 하는 사람들은 진짜 천재 인정이다. 아니, 불가능하다.
스레드 수가 갈수록 늘어남에도 왜 CPU 에 계속 새 명령어가 추가되고 싱글 스레드 성능 향상을 사람들이 주목할까?
스레드를 무슨 램 마냥 다다익선으로 보는 사람들이 많은데 실제 개발을 해보지 않은 티가 너무 많이 나는 생각이다. 설계를 아무리 잘해도 스레드를 딱딱 나눠서 병렬로 처리할 수 있는 부분은 많지 않다.
서버가 아닌 특히 일반 유저 타겟 앱에서는 요청 처리가 딱딱 나뉘는 그런 이상적인 상황 자체가 별로 없다는 거다.
나눌 수 있더라도 이로 인해 추가로 발생하는 복사, 처리 상의 비효율성, 캐시미스 등을 다 합치더라도 벤치마크를 통해 확실히 성능이 향상됐는지 검증해야 하고 성능 향상이 미미할 수 있다.
당장 시스템 콜도 컨텍스트 스위칭으로 인한 성능저하 때문에 캐싱하고 이런저런 테크닉을 쓰고 별 지랄을 다 하는 분야도 있는데 좀 상식적으로 생각을 하자. 학교에서도 열심히 가르쳐주잖냐
애초에 병렬화도 힘든 작업들이 많음
멀티 쓰레드 얘기하는데 컨텍스트 스위칭이 왜 나옴? Task를 병렬화하는 기 어렵다는 건 맞는 말임. 그리고 뒤에 시스템 콜 얘기는 또 왜 나옴?
컨텍스트 스위칭이 왜 나오냐는 말이 왜 나옴? Thread affinity 설정 일일이 하고 oversubscription 안 생기게 갯수 맞추기 않으면 컨텍스 스위칭 수시로 일어남
이거 코어수 상관없이 작업이 1만개면 스레드도 1만개 만들 사람이네
스레드도 컨텍스트 스위칭 있고, 동기화하려면 Mutex 쓰는 상황 좀 올탠데 그러면 즉시 system call 이잖음 - dc App
시스템콜도 호출하면 커널영역으로의 컨텍스트 스위칭 발생함
함수형 합시다
나는 그런 진정한 개발자가 될거기때문
ㄹㅇ 멀티쓰레딩 오버헤드 크다
만능은 캐싱이 만능임. - dc App
돈은 킹쩔수 없지