문제

일부 iPhone 개발에 Monotouch를 사용하는 것을 고려하고 있지만 페이로드 크기는 중요한 요소입니다.

이전에 iPhone에 Mono를 설치 한 적이없는 사용자의 경우 Objective-C "Hello World"앱의 크기는 Monotouch "Hello World"앱과 비교됩니까?

보다 구체적으로, 대략은 무엇입니까? 다운로드 해야하는 바이트 수와 약 일단 설치 한 바이트 수는?

도움이 되었습니까?

해결책

Objective-C의 "Hello World"프로그램은 50 KB (전체 .app 폴더)를 차지합니다. Monotouch를 사용하면 유사한 "Hello World"앱이 5MB (전체 .App 폴더)를 차지하며, 이는 쓰레기 수집이 포함 된 런타임을 고려할 때 전혀 나쁘지 않습니다.

다른 팁

1.5 Monotouch에서

릴리스 빌드 - 배포 라이센스로 구축 된 응용 프로그램이며 기본 프로젝트 설정만으로 5MB입니다. 그 중 4.3MB는 이진 실행 파일입니다.

그들은 종종 내 경험상 최대 10MB까지 올라가고 포럼은 같은 그림을 그립니다. AppStore는 압축이없는 크기를보고하지만 ZIPPED로 다운로드됩니다. 지퍼는 약 3MB이며, 3G에서도 괜찮습니다.

내 생각에, 대부분의 사람들은 앱을 다운로드하거나 특히 관리하기 전에 파일 크기를 보지 않을 것입니다. 3G 다운로드의 AppStore 한도는 이제 20MB입니다. Monotouch 크기 내에 있습니다.

Devil 's Advocate를 플레이하기 위해, 예, 그것은 목표 C 동등한 것보다 더 큰 주문이 많으며 16GB 공간을 4-10MB 더 많이 점령하는 것에 대해 걱정할 수있는 소수의 사람들을 놀라게 할 수 있습니다. 그러나 시장 할 시간과 .NET에 사용할 수있는 기존 도구도 있습니다. 나는 발달한다 그리고 Visual Studio 2010에 모든 Monotouch 앱을 빌드 한 다음 Mac에서 테스트하십시오. Apple조차도 IDE가 업계 리더와 가까이 있다고 주장하지 않을 것이라고 생각합니다.

이 질문에서 모노치 및 실행 파일의 크기:

Monotouch는 OBJ-C로 번역되지 않습니다. .NET IL로 컴파일 한 다음 (JIT 컴파일러와 같은 방식으로, 실행되기 전에 - "미리"컴파일러 "를 기본 암 코드로 컴파일합니다.

그래서:

OBJ -C-> GCC (또는 LLVM) -> ARM 코드

VRS MT :

C# -> IL-> (AOT 컴파일러) -> ARM 코드

3.x의 출력 바이너리는 또한 많은 .넷 프레임 워크 (음, 모노 프레임 워크이지만 동일함), 예를 들어 System.xml을 사용한다면 System.dll 등과 동일 한 출력에 포함시켜야합니다. 링커는 매우 똑똑하지만 출력 binaries 항상 될 것입니다 더 큰.

나에게있어, 중요한 크기는로드 시간과 지퍼 이진 크기입니다. "Hello World"앱을위한 Zipped Binary는 약 2.5-3meg입니다. (4.X에서 더 작습니다) vrs 300K OBJ-C의 경우. System.dll의 한 번만 포함되므로 차이는 점점 줄어 듭니다. 동시에 동일한 일을하는 MT VRS OBJ-C의로드 시간은 동일하게 충분히 가깝습니다. 어느 쪽이든 천천히로드 할 수 있습니다 (다른 스레드에 올려 놓지 않고 완성 된 일정에서 오랫동안 달리는 일을하십시오).

답변자는 계속해서 자신이 Objective-C보다 Monotouch로 더 생산적이라고 생각한다고 말합니다. ymmv.

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