공유 라이브러리와 정적 라이브러리 로딩 시간에 대한 질문이 있습니다.공유 라이브러리 대 정적 라이브러리 로딩 시간
liba, libb, libc를 사용하는 실행 가능한 foo.exe가 있다고 가정합니다. 또한 주어진 시간에 컴퓨터에서 실행되는 실행 파일 인스턴스가 10 개 이상 있습니다.
위의 3 개의 라이브러리가 공유 라이브러리 인 경우 : 첫 번째 Insance가 RAM에로드되었습니다. foo.exe의 main()이 메모리를로드하는 데 걸리는 시간 (무시할 수 있음) +로드 시간 liba + libb를로드 할 시간 + libc로드 시간 두 번째 인스턴스가 시작되었습니다. 이제이 실행 파일의 두 번째 인스턴스가 실행된다고 가정합니다. 모든 라이브러리 이 주 메모리에 이미로드되었으므로 무시할 수있는 메모리에 main()을로드하는 데 걸린 시간이 소요됩니다.
이제 상기 3 라이브러리 정적 라이브러리 인 경우 : 1 Insance이 RAM에로드된다에서 foo.exe로 main()에 의해 촬영 시간이 될 것이다 걸리는 시간을 메모리 (ITS 무시할 가정)로드 될 + 시간이 load liba + libb를로드 할 시간 + libc를로드하는 시간 (Offcourse : 전체 실행 파일의 모든 부분) 두 번째 인스턴스가 시작되었습니다. 이제이 실행 파일의 두 번째 인스턴스가 실행된다고 가정합니다. 소요 된 시간은 foo.exe의 main()이 메모리를로드하는 데 걸리는 시간 (무시할 만하다) + liba를로드 할 시간 + libb를로드하는 시간 + libc를로드하는 시간. (각 실행 파일은 정적 라이브러리이므로 librareies를 공유하지 않기 때문에)
결론적으로 정적 라이브러리에서는로드 시간이 더 길어집니다. 하지만 공유 라이브러리는 정적 라이브러리보다로드하는 데 시간이 더 오래 걸리므로 지연이 있으므로 공유 라이브러리가 좋은 옵션이 아닙니다. 이것이 어떻게 가능한지 ?
이 믿을 수 없을 정도로 빠른 응답을 많이 주셔서 감사합니다, 우리는 2 architecural scenarious 나는 내 질문 pls에 대한 답변으로 내 질문을 준있다. – sud