मैं एक गेम पर काम कर रहा हूं, और हम JSON प्रारूप में हमारी स्तर की जानकारी संग्रहीत कर रहे हैं। इन स्तरों काफी बड़े हैं, इसलिए हम बस में सादा सी # उन्हें भंडारण में स्विच:मोनो टच एओटी कंपाइलर - बड़ी विधियां विफल
- एक शीर्ष स्तर विधि स्तर/वस्तु के नाम के लिए एक स्विच बयान है
- कई स्वत: जनरेट तरीकों रहे हैं कि "नए अप" मानक संपत्ति inititalizers के साथ हमारे वस्तु पेड़
उदाहरण:
private OurObject Autogenerated_Object1()
{
return new OurObject { Name = "Object1", X = 1, Y = 2, Width = 200, Height = 100 };
}
इन तरीकों को छोड़कर बहुत बड़े हैं और सूचियों नेस्ट है/ढ़ंग अन्य वस्तुओं की मेष, आदि
इसने 2-3 सेकंड से एक सेकंड (विंडोज़ पर) के अंश को लोड करने का समय बढ़ाया है। जेएसओएन की तुलना में संकलित आईएल के रूप में हमारे डेटा का आकार भी काफी छोटा है।
समस्या यह है कि जब हम MonoTouch के लिए monodevelop में इन संकलन, हम पाते हैं:
mtouch exited with code 1
-v -v -v
को चालू करके, हम त्रुटि देख सकते हैं:
MONO_PATH=/Users/jonathanpeppers/Desktop/DrawAStickman/Game/Code/iOS/DrawAStickman.iPhone/bin/iPhone/Release/DrawAStickmaniPhone.app /Developer/MonoTouch/usr/bin/arm-darwin-mono --aot=mtriple=armv7-darwin,full,static,asmonly,nodebug,outfile=/var/folders/4s/lcvdj54x0g72nrsw9vzq6nm80000gn/T/tmp54777849.tmp/monotouch.dll.7.s "/Users/jonathanpeppers/Desktop/DrawAStickman/Game/Code/iOS/DrawAStickman.iPhone/bin/iPhone/Release/DrawAStickmaniPhone.app/monotouch.dll"
AOT Compilation exited with code 134, command:
MONO_PATH=/Users/jonathanpeppers/Desktop/DrawAStickman/Game/Code/iOS/DrawAStickman.iPhone/bin/iPhone/Release/DrawAStickmaniPhone.app /Developer/MonoTouch/usr/bin/arm-darwin-mono --aot=mtriple=armv7-darwin,full,static,asmonly,nodebug,outfile=/var/folders/4s/lcvdj54x0g72nrsw9vzq6nm80000gn/T/tmp54777849.tmp/DrawAStickmanCore.dll.7.s "/Users/jonathanpeppers/Desktop/DrawAStickman/Game/Code/iOS/DrawAStickman.iPhone/bin/iPhone/Release/DrawAStickmaniPhone.app/DrawAStickmanCore.dll"
Mono Ahead of Time compiler - compiling assembly /Users/jonathanpeppers/Desktop/DrawAStickman/Game/Code/iOS/DrawAStickman.iPhone/bin/iPhone/Release/DrawAStickmaniPhone.app/DrawAStickmanCore.dll
* Assertion: should not be reached at ../../../../../mono/mono/mini/mini-arm.c:2758
वहाँ कोई सीमा है एओटी के लिए संकलन करते समय, विधि में लाइनों की संख्या के लिए? क्या कोई तर्क है कि हम इसे ठीक करने के लिए mtouch
पर जा सकते हैं? कुछ फाइलें ठीक काम करती हैं, लेकिन विशेष रूप से एक त्रुटि के कारण 3,000 लाइन विधि होती है। सिम्युलेटर के लिए संकलन ठीक काम करता है इससे कोई फर्क नहीं पड़ता।
यह अभी भी एक प्रयोग है, इसलिए हमें एहसास है कि यह एक बहुत पागल स्थिति है।
क्या यह छोटे स्तरों के साथ काम करता है? –
हां, छोटे स्तरों के साथ ठीक काम करता है। जैसे ही मैं एक विशेष झाड़ी या पेड़ जोड़ता हूं, मुसीबत शुरू होती है - और सिम्युलेटर ठीक काम करता है। – jonathanpeppers
कृपया एक बग रिपोर्ट भरें :) – poupou