이것은 이상한 질문으로 들릴 수 있지만 부서에서 다음 상황에 문제가 있습니다.
우리는 서버 응용 프로그램을 개발 중입니다. 서버 응용 프로그램을 처리하기 위해 필요에 따라 동적으로로드하고 나중에 언로드하는 것을 고려할 때조차도 점점 커지고 있습니다. 성능 문제.
그러나 우리가 사용하는 함수는 STL 객체로 입력 및 출력 매개 변수를 전달 하고 있으며 스택 오버플로 답변에서 언급했듯이 이것은 매우 나쁜 생각입니다. (포스트에는 몇 가지 ± 솔루션과 해킹이 포함되어 있지만 모두 견고하지는 않습니다.)
분명히 우리는 입력 / 출력 매개 변수를 표준 C ++ 유형으로 바꾸고 함수 내부에서 STL 객체를 만들 수 있지만 성능 저하가 발생할 수 있습니다.
하나의 단일 PC가 더 이상 처리 할 수 없을 정도로 커질 수있는 응용 프로그램 구축을 고려중인 경우 STL을 기술로 사용해서는 안된다고 결론을 내릴 수 있습니까?
이 질문에 대한 추가 배경 : 질문에 대한
오해가있는 것 같습니다. 문제는 다음과 같습니다.
응용 프로그램이 작업을 완료하기 위해 엄청난 양의 성능 (CPU, 메모리)을 사용하고 있으며이 작업을 분할하고 싶습니다. 다른 부분으로 (프로그램이 이미 여러 기능으로 분리되어 있기 때문에) 내 응용 프로그램에서 일부 DLL을 만들고 해당 DLL의 내보내기 테이블에 일부 기능을 넣는 것은 어렵지 않습니다. 다음과 같은 상황이 발생합니다.
+-----------+-----------+----
| Machine1 | Machine2 | ...
| App_Inst1 | App_Inst2 | ...
| | |
| DLL1.1 | DLL2.1 | ...
| DLL1.2 | DLL2.2 | ...
| DLL1.x | DLL2.x | ...
+-----------+-----------+----
App_Inst1은 Machine1에 설치된 응용 프로그램의 인스턴스이고 App_Inst2는 Machine2에 설치된 동일한 응용 프로그램의 인스턴스입니다.
DLL1.x는 Machine1에 설치된 DLL이고 DLL2.x는 Machine2에 설치된 DLL입니다.
DLLx.1은 내 보낸 기능 1을 다룹니다.
DLLx.2는 내 보낸 function2를 다룹니다.
이제 Machine1에서 function1과 function2를 실행하고 싶습니다. 이것이 Machine1에 과부하가 걸리므로 App_Inst2에 메시지를 보내 해당 응용 프로그램 인스턴스가 function2를 수행하도록 요청하고 싶습니다.
function1 및 function2의 입력 / 출력 매개 변수는 STL (C ++ 표준 형식 라이브러리) 개체이며, 정기적으로 고객이 App_Inst1, App_Inst2, DLLx.y를 업데이트 할 것으로 예상 할 수 있습니다 (그러나 모두는 아니지만 고객은 Machine1을 업그레이드 할 수는 있지만 Machine2가 아니거나 응용 프로그램 만 업그레이드하지만 DLL은 업그레이드하지 않으며 그 반대도 마찬가지입니다 ...). 인터페이스 (입력 / 출력 매개 변수)가 변경되면 고객은 업그레이드를 완료해야합니다.
그러나 언급 된 StackOverflow URL에서 언급했듯이 App_Inst1 또는 DLL 중 하나의 간단한 재 컴파일로 인해 전체 시스템이 손상 될 수 있으므로이 게시물의 원래 제목이 STL (C ++ 표준 템플릿)의 사용을 거부합니다 큰 응용 프로그램의 경우 라이브러리).
이에 의해 몇 가지 질문 / 의견이 해결 되었기를 바랍니다.