ios - غوغليمابس على محاكاة في كسكودي 9 يستخدم أكثر من 100٪ من وحدة المعالجة المركزية عند تحريك الخريطة



xcode google-maps (1)

لذلك لقد تحولت الآن مشروعي لاستخدام سويفت 4 في كسكودي 9، وبدأت اختبار بلدي التطبيق. انها التطبيق كبيرة مع أربع علامات تبويب متميزة، وكل شيء تقريبا يعمل كما هو متوقع. إحدى علامات التبويب عبارة عن خريطة باستخدام غوغل مابس. لم يكن لدي أي مشكلة مع ذلك، ولكن عندما بنيت مع كسكودي 9 وتبين في محاكي، ويستخدم أكثر من 100٪ من وحدة المعالجة المركزية عند تحريك الخريطة، وانها متخلفة كثيرا. هنا هو الملاح التصحيح عند تشغيل على جهاز محاكاة. نحن نفعل بعض الرسم مخصص، ولكن ليس 102٪ يستحق الرسم.

هذا بدأ فقط يحدث بعد تحديث ل كسكودي 9 و سويفت 4. عند التصحيح في كسكودي 9 على جهاز أي فون 7 أو 8 أو X محاكاة ، مع كل دائرة الرقابة الداخلية 11، يذهب ما يزيد قليلا عن 100٪ وحدة المعالجة المركزية، ويوقف تماما واجهة المستخدم من التحديث لمدة ثانية واحدة في كل مرة أحاول نقله. أبدأ سحب لفتة، ولكن واجهة المستخدم التحديثات فقط مرة واحدة في الثانية. إعطاء لي نحو 1fps .

ومع ذلك، عند التصحيح في كسكودي 9 على جهاز محاكاة اي فون 6 مع دائرة الرقابة الداخلية 9 ، فإنه يحصل على ما يصل الى ~ 90٪ عند تحريك الخريطة وليس متخلفة تقريبا. أنا التخمين أحصل على حوالي 20-30 إطارا في الثانية هنا. (وهذا قد يكون نفس إطارا في الثانية أحصل في المحاكاة على كسكودي 8. الخريطة لم تكن على نحو سلس حقا على محاكاة ..)

عند تشغيل على جهاز الفعلي (اي فون 7، دائرة الرقابة الداخلية 11)، وحدة المعالجة المركزية يستخدم حوالي 40٪ عندما تتحرك باستمرار الخريطة، وتعمل على نحو سلس جدا مع أي تأخير على الإطلاق (60fps).

أنا أيضا الحصول على هذا في الإخراج بمجرد فتح علامة التبويب مع الخريطة، ولكن أعتقد أنه لا صلة لها بهذا السؤال بالذات:

Main Thread Checker: UI API called on a background thread: -[UIApplication applicationState]
PID: *****, TID: *******, Thread name: com.google.Maps.LabelingBehavior, Queue name: com.apple.root.default-qos.overcommit, QoS: 21

هذا يقول أن غوغليمابسابي يدعو [UIApplication applicationState] على سلسلة [UIApplication applicationState] الخلفية ...

أنا أستخدم أحدث إصدار من غوغليمابس: 2.4.0 . بقدر ما أعرف، قد لا يدعم هذا الإصدار كسكودي 9 / سويفت 4 الخ، ولكن لا أستطيع أن أجد أي شيء عن إصدار جديد.


تحديث: تم إصلاح هذه المشكلة في كسكودي 9.1 بيتا 2

هناك خلل في OpenGLES.framework يؤدي إلى تخطي تحميل لفم جيت والعودة إلى تظليل تفسيرات. هذا له تأثير حاد على الأداء على محاكاة لأنه هو تماما برنامج أوبنغل المقدمة (وهذا يشمل كورانيماشيون، سينيكيت، الخ).

تحرير : لتوضيح، وأعراض هذا هو بالضبط ما تصفه: 100٪ أو أكبر استخدام وحدة المعالجة المركزية و <1fps تقديم. يؤثر ذلك على حزمة خرائط غوغل سك و مابكيت.

كحل مؤقت يمكنك نسخ libCoreVMClient.dylib من بيتا 3 في كسكودي 9 جنرال موتورز والأداء يجب استعادة ما كان عليه سابقا. يجب أن يتم ذلك لكل وقت تشغيل منصة بشكل منفصل.

ل يوس هذا موجود في: Xcode[-beta].app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/CoreSimulator/Profiles/Runtimes/iOS.simruntime/Contents/Resources/RuntimeRoot/System/Library/Frameworks/OpenGLES.framework/libCoreVMClient.dylib

ل تفوس هذا يقع في: هكود [-beta Xcode[-beta].app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/Library/CoreSimulator/Profiles/Runtimes/tvOS.simruntime/Contents/Resources/RuntimeRoot/System/Library/Frameworks/OpenGLES.framework/libCoreVMClient.dylib

ل واتشوس هذا موجود في: هكود [-beta Xcode[-beta].app/Contents/Developer/Platforms/WatchOS.platform/Developer/Library/CoreSimulator/Profiles/Runtimes/watchOS.simruntime/Contents/Resources/RuntimeRoot/System/Library/Frameworks/OpenGLES.framework/libCoreVMClient.dylib





xcode9