문제

C/C ++ 응용 프로그램에 모노 (.NET의 오픈 소스 구현)를 포함시키는 사람들의 경험에 대해 듣고 싶습니다. 그러한 애플리케이션을 어떻게 배포하고 종속성은 무엇입니까? 나는 OS X에서 테스트했으며 모노는 거대한 프레임 워크 (수백 MB)로 온다. 내 앱의 사용자는이 큰 프레임 워크가 필요하거나 제거되거나 모든 것이 기본 실행 파일로 컴파일 될 수 있습니까?

나는 이전에 C ++ 앱에 LUA를 포함시키는 경험이 있었으며, 전체 LUA 통역사를 메인 실행 파일과 정적으로 연결할 수 있기 때문에 실제로 잘 작동합니다. 그래서 외부 종속성이 없습니다. 모노와 비슷한 일을 할 수 있습니까?

Lua와 비교하여 모노를 어떻게 찾았는지에 대해 언급 할 수있는 Lua 사람들은 누구입니까?

PS : 임베딩을 통해 모노 환경을 초기화하고 .NET 어셈블리를로드 한 다음 실행 한 다음 메인 실행 파일에서 어셈블리의 C# 코드와 C ++ 메소드 사이의 통신을 허용하는 C ++ 응용 프로그램을 의미합니다.

도움이 되었습니까?

해결책

아마도 모노의 것을 살펴 봐야 할 것입니다. 작은 발자국 더 작은 런타임을 포함시키는 방법을 설명하는 페이지. 도대체, 그들은 스스로한다 월광.

도움이되기를 바랍니다.

다른 팁

이것은 2 년 된 질문입니다. 따라서 상황은 이제 다를 수 있습니다.

저에게 가장 중요한 요점은 GC였습니다. 점진적인 GC가 필요하기 때문에 대화식 애플 및 게임을 위해 LUA를 포함 시켰습니다. 현재 LUA 5.1은 정확하고 증분 GC를 가지고 있지만 모노에서 증분 또는 정확한 GC의 증거를 찾을 수 없었습니다. 따라서 메모리가 누출되어 (매우 작습니다!) 앱은 간헐적으로 어려움을 겪게됩니다.

사람들은 GC 일시 정지가 일부 매개 변수와 풀링 객체를 조정하여 해결할 수 있다고 말하지만, 내가 경험 한대로 IT 절대 어떤 종류의 종류없이 해결해야합니다 분포 GC 시간이 지남에 따라로드 GC에서의 접근. 세대 GC는 분포 알고리즘 중 하나이지만 너무 거칠고 거의 도움이되지 않습니다.

귀하가 아닌 코드에 사용 된 객체를 풀링하여 수명 패턴이나 재사용 인스턴스를 제어 할 수 없기 때문입니다. (기본 클래스 라이브러리와 같은)

따라서 대화식/(소프트) 실시간 앱에 C# 플랫폼 (모노 또는 .NET)을 권장하지 않습니다.


편집하다

점진적/동시에 접근 한 GC가 모노 또는 .NET에 제시되어 있는지 모르겠습니다. 당신이 그들이 GC의 종류를 제공하는 것에 대해 확신 할 수 있다면, 물론 사용하는 것은 괜찮습니다 :)

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top