최신 C++ 컴파일러의 다중 스레드에서 메모리 할당이 전역 잠금 액세스를 유발합니까? 컴파일러와 운영 체제에 따라 차이가 있습니까? 개별 스레드가 필요로 할 때 동적으로 할당하는 대신 미리 할당 된 전역 배열 (적은 비용으로 덜 편리함)에 소량의 데이터를 저장하는 것이 얼마나 많은 이점이 있습니까?멀티 스레드 성능에 대한 메모리 할당의 영향
0
A
답변
1
모든 스레드는 공통 가상 주소 공간을 공유하므로 힙 (malloc 또는 new)의 모든 메모리 할당은 모든 스레드가 사용하는 가상 주소 공간을 업데이트하게됩니다. 이것이 어떻게 구현되는지는 운영체제와 컴파일러에 따라 다릅니다.
할당 된 메모리가 함수 범위를 필요로하고 너무 크지 않은 경우 alloca() (또는 _alloca())를 사용하여 할당 할 수 있습니다. 스택에서 할당하는 스레드 및 함수 로컬 인스턴스 그 할당 된 메모리의.
필자가 작성한 멀티 스레드 프로그램에서 시작시 할당 된 메시지 및/또는 버퍼 "자유"풀을 사용한 다음 스레드가 메시지를 "할당하고"무료로 사용하도록했습니다. "무료"풀의 버퍼
관련 문제
- 1. 성능에 대한 javax.servlet.Filter의 영향?
- 2. 대리인 재 할당의 영향
- 3. SQLite의 성능에 대한 주요한 영향
- 4. Systemtap 성능에 미치는 영향
- 5. 성능에 미치는 영향
- 6. mysql_data_seek의 성능에 미치는 영향
- 7. MouseMove 성능에 미치는 영향
- 8. Java -verbose : gc 성능에 대한 영향?
- 9. 성능에 대한 local_work_size의 영향 및 이유는 무엇입니까?
- 10. 쿼리 성능에 대한 예측 횟수의 영향
- 11. 다중 사용자 성능에 대한 주요한 영향
- 12. 클러스터 성능에 대한 상호 관련 실패의 영향
- 13. GADT 사용시 성능에 미치는 영향
- 14. 성능에 "패킹"구조가 미치는 영향
- 15. SQL 저장 프로 시저의 주석의 성능에 대한 영향
- 16. require 문이 메모리 사용 및 성능에 미치는 영향
- 17. OpenCL - 성능에 장벽이 미치는 영향
- 18. 성능 카운터의 성능에 미치는 영향
- 19. Oracle 사용시 성능에 미치는 영향
- 20. `USE`가 성능에 미치는 영향
- 21. Java - System.out 성능에 미치는 영향
- 22. 응용 프로그램의 성능에 미치는 영향
- 23. 힙 메모리 할당의 예외
- 24. 메모리 할당의 이상한 동작
- 25. 메모리 할당의 C++ 오류
- 26. 메모리 할당의 운동
- 27. 자바 반복 객체 할당의 perfomance 영향
- 28. 트리거 및 멀티 트리거의 성능 영향
- 29. 메모리 할당의 함수형 프로그래밍 사례
- 30. 블로킹 입출력이 Linux의 멀티 스레드 응용 프로그램/서비스에 미치는 영향
이것은 실제로 언어, 디자인, 요구 사항, 사용 사례, 사용 된 프레임 워크 등에 따라 달라집니다. –