2013-11-26 4 views
1

나는 stains를 사용하여 wince 기반 사용자 정의 OS를 개발하고 있습니다. 그러나 지금부터는 windows에서 제공하는 stl을 사용하려고 생각하고 있습니다. 나는 기능적으로 그것들이 서로 다르지 않기 때문에 현재 중요한 것은 나의 이미지의 크기라는 것을 읽었다. 불행히도 나는 둘 다 stlport를 처음 사용하는 것과 같은 시도를해서는 안되며 stlport를 사용하고 두 이미지의 크기를 비교할 수는 없다. 왜냐하면 나는 다른 문제를 성공적으로 해결하기 위해 해결해야 할 많은 문제가 있기 때문이다. OS. 따라서 저는 전문가의 아이디어를 얻고 싶었습니다 :STL vs Stlport : 어느 쪽이 더 가볍습니다

어느 것이 더 가볍겠습니까? 나는 stlport가 붙어있는 방법을 알고있다. 그러나 나는 STL에 관해 아주 확신하지 않는다. 나는 STL 헤더를 들여다 보았고 수천 개의 인라인 함수를 보았다. 하지만 그게 전부인가? 나는 그것에 대해 확신 할 필요가있다. STL은 다른 라이브러리를 내부에 링크합니까? 아니면 단순히 헤더를 포함하고 해당 인라인 함수를 사용합니까?

최저

시 : 내가 VS2012를 사용하고 wec2013

Ps2에서 일하고 : 방법을 사용하여 응용 프로그램을 구축하는 나는 무엇 STL을 알고 된 STLport는 약자. 내 실제 질문은 어느 것이 더 적은 메모리를 소비하고, HDD에 더 작은 크기를 사용합니까? (stlport와 같은 것은 lib이지만 stl은 그렇지 않습니다.)

답변

4

STL은 컴파일러의 표준 라이브러리를 의미한다고 가정합니다. 이것은 STL이 언어로 제안되고 받아 들여지는 도서관의 원래 이름이기 때문에 일반적인 오해입니다. 그러나 그것으로부터 진화했습니다. 이 점을 고려하면 질문은 다음과 같습니다.

내 컴파일러와 함께 제공되거나 stlport [또는 다른 대안]을 사용하여 표준 라이브러리를 사용해야합니까?

답변은 사용 사례에 따라 다르지만, 표준에 정의 된대로 라이브러리를 사용하는 한 (즉, 확장명없이) 라이브러리를 사용하는 한 쉽게 전환 할 수 있어야합니다. 건물 하나 또는 다른, 그리고 당신이 직접 테스트 할 수 있다는 것을 의미합니다. 다른 컴파일러 플래그를 사용하여 건물을 테스트 할 수도 있습니다. 이는 VS에서 특히 중요합니다. 기본적으로 라이브러리는 디버그에 좋지만 추가 메모리와 처리 비용을 들이지 않고 검사 된 반복자를 사용합니다.

+0

예 STL이 내 컴파일러의 표준 라이브러리에 대해 말하고 있었기 때문에 Visual Studio 버전에 대한 메모를 추가했습니다. 나는 둘 다 시도해 보았고 STL로 인한 건물 문제는 없었습니다. 나는 STL과 stlports의 발자취에 더 관심이있다. 어느 쪽이 실제로 내 주요 질문 인 적은 메모리를 사용합니다. – Xentius

+0

@ Xentius 지금은 버려진 별도의 라이브러리이기 때문에 STL 사용을 중단하는 것이 좋습니다. Microsoft는 STL을 배포하지 않았습니다. – Potatoswatter

+1

@ Xentius : 답변에서 언급했듯이 측정 이외의 확실한 대답은 없습니다.나는 기본적으로 메모리와 CPU의 요구가 VS보다 높을 것으로 기대한다. (iterator를 체크한다.) 그러나 만일 당신이 그것들을 사용하지 않는다면 나는 어떤 방법으로도 내기를하지 않을 것이다. –

1

STLPort은 (예를 들어, C++ 예외 지원이없는 임베디드 플랫폼과 같이) STL을 제공하지 않는 플랫폼에서 사용되도록 설계되었거나 기본 STL 지원이 구형입니다.

따라서 대개 기본 STL을 바꿀 필요가 없습니다. 프로젝트에서 STLPort를 사용해야하는 강력한 이유가 있어야합니다. 내 경험으로, 일부 임베디드 DSP 플랫폼 (기본 STL 없음) 및 UEFI 플랫폼 (실제로 포함되지는 않았지만 기본 STL이 없으며 런타임도 C++ 예외를 지원하지 않음)에 사용했습니다.

STLPort은 매우 사용자 정의 가능하며 (예외, 스트림 등을 비활성화 할 수 있음) 기본 C++ 지원이있는 거의 모든 플랫폼에서 사용할 수 있습니다.

관련 문제