React-native-router-flux: بطيء للغاية على الروبوت

تم إنشاؤها على ١١ فبراير ٢٠١٦  ·  34تعليقات  ·  مصدر: aksonov/react-native-router-flux

مرحبًا ، أولاً وقبل كل شيء: مكتبة رائعة!
واجهة برمجة التطبيقات والاستخدام رائع تمامًا!

أحاول RNRF على Android على جهاز Nexus 5 ، ولكني أحصل على استجابات بطيئة جدًا ، انظر هنا:
https://drive.google.com/file/d/0B-zpEic041zoR1Fhd0VhTnA5VkU/view؟usp=sharing

أي فكرة لماذا هذا هو الحال؟
شكرا!

التعليق الأكثر فائدة

أهلا،

لقد وجدت أخيرًا سبب بطئها على جهازي / جهاز المحاكاة. كنت بسبب خطأي.
كنت أقوم بعمل console.log (عمل) في علبة التروس. يتضح أن الأشياء بطيئة كثيرًا. خاصة عند تنفيذه على الجهاز. كان الأمر جيدًا عند تشغيل تصحيح أخطاء الكروم لأنه يتم تنفيذه باستخدام محرك جافا سكريبت الكروم الذي يعد أقوى بكثير (الكمبيوتر المحمول مقابل الجهاز).

بعد إزالة كل السجل (الإجراء) ، أصبح الأمر أفضل بكثير الآن.

دودي

ال 34 كومينتر

المشكلة ليس لدي android. ربما يمكن للمجتمع أن يساعد. هل حاولت التصحيح؟ هذا المكون هو مجرد التفاف حول exNavigator. هل يعمل ExNavigator جيدًا على نظام Android؟

timsuchanek ، هل

مرحبًا ، نعم لقد جربتها بدون تمكين المصحح. لكن ما وجدته:
إذا تم فتحه بالفعل مرة واحدة ، فسيكون أسرع كثيرًا.
فقط أول مرة أو مرتين يكون بطيئًا.
سأتحقق من ExNavigator بشكل مستقل

مرحبًا timsuchanek شكرًا على الإبلاغ عن هذا. هل هي بطيئة بدون الرسوم المتحركة (على سبيل المثال <Scheme> بدون تكوين الرسوم المتحركة)؟ أنا على استعداد للتنازل عن الرسوم المتحركة للأداء إذا كان الأسوأ يزداد سوءًا. ليس لدي Android أيضًا ، وإلا سأجربه بنفسي.

يمكنني أن أؤكد أن التطبيق المثال تباطأ على Android 4.4 (يستغرق الأمر حوالي 2 ثانية من النقر فوق الزر إلى أي تغييرات في المسار). ولا تحتوي أمثلة exNavigator على نفس المشكلة.

تحرير: بعد تمكين تصحيح أخطاء الكروم يختفي التأخير بطريقة سحرية ___________-

sbycrosz هل هو بطيء لشريط علامات التبويب أم لكل الصفحات؟

لقد كنت أختبر هذه المكتبة على Android اليوم ويبدو أنها تعمل بشكل جيد طالما أنني لا أستخدم تصحيح أخطاء الكروم.

يبدو أن هناك تأخيرًا في الرسوم المتحركة "للتبديل" بين علامات التبويب. أنا أبحث في ذلك.

لقد اختبرت "المفتاح" في علامة التبويب ، إنه بطيء جدًا ، حوالي 1.5 ثانية لتغيير علامة التبويب. لقد قمت بإيقاف تشغيل تصحيح أخطاء الكروم وإعادة التحميل المباشر ، إنه نفس الشيء.

هل يمكنك التحقق من أحدث إصدار؟ يرجى أيضًا إلغاء تعليق تسجيل وحدة التحكم داخل debug.js والتحقق.

لقد حاولت تصحيح أخطاء تطبيق Example من الإصدار 2.3.1 على جهاز Android اللوحي. كانت الرسوم المتحركة بطيئة للغاية.
هذا هو إخراج وحدة التحكم مع debug.js uncommented
لقد قمت أيضًا بإنشاء إصدار لتطبيق بسيط (باستخدام الإصدار 2.3.1) وقمت بتشغيله على Samsung Galaxy S3. مرة أخرى كان كل شيء بطيئا للغاية.
ربما سيؤدي تحديث "@ exponent / response-native-navigator": "^ 0.3.5" إلى الإصدار الأحدث إلى إصلاحه؟

يرجى التحقق من رمز exnavigator الأساسي

بافل.

24 سنة. 2016 г.، в 21:18، doomsower [email protected] написал (а):

لقد حاولت تصحيح أخطاء تطبيق Example من الإصدار 2.3.1 على جهاز Android اللوحي. كانت الرسوم المتحركة بطيئة للغاية.
هذا هو إخراج وحدة التحكم مع debug.js uncommented
لقد قمت أيضًا بإنشاء إصدار لتطبيق بسيط (باستخدام الإصدار 2.3.1) وقمت بتشغيله على Samsung Galaxy S3. مرة أخرى كان كل شيء بطيئا للغاية.
ربما سيؤدي تحديث "@ exponent / response-native-navigator": "^ 0.3.5" إلى الإصدار الأحدث إلى إصلاحه؟

-
قم بالرد على هذا البريد الإلكتروني مباشرة أو قم بعرضه على GitHub.

أهلا،

أنا أيضا أعاني من البطء. ومع ذلك ، عند تمكين تصحيح أخطاء الكروم ، يكون أسرع.
السلوك في جهاز المحاكاة (Android و iOS) والجهاز الفعلي هو نفسه عند تعطيل تصحيح أخطاء الكروم.

هل هناك أي طريقة لتعطيل "@ exponent / response-native-navigator" لعزل المشكلة تمامًا؟

دودي

أهلا،

لقد واجهت هذه المشكلة أيضًا ، لكنني قمت بحلها عن طريق تعطيل وضع dev.

هنا المشكلة على جيثب المتفاعل الأصلي:
https://github.com/facebook/react-native/issues/3049

لقد جربت جهاز توجيه آخر وكان هو نفسه تمامًا على نظام Android. كان العرض
بطيء جدا. لذلك ، لست متأكدًا من أن الأمر يتعلق بتفاعل جهاز التوجيه الأصلي :)

توني

لو فين. 26 فبراير. 2016 في 03:10 ، doddys [email protected] بريد إلكتروني:

أهلا،

أنا أيضا أعاني من البطء. ومع ذلك ، عندما الكروم التصحيح
ممكّن ، إنه أسرع.
السلوك في جهاز المحاكاة (android و iOS) والجهاز الفعلي هو نفسه
كما هو الحال عندما يتم تعطيل تصحيح أخطاء الكروم.

هل هناك على أية حال تعطيل "@ الأس / رد فعل الأم الملاح" تماما
لعزل المشكلة؟

دودي

-
قم بالرد على هذا البريد الإلكتروني مباشرة أو قم بعرضه على GitHub
https://github.com/aksonov/react-native-router-flux/issues/199#issuecomment -189078772
.

أهلا،

لقد وجدت أخيرًا سبب بطئها على جهازي / جهاز المحاكاة. كنت بسبب خطأي.
كنت أقوم بعمل console.log (عمل) في علبة التروس. يتضح أن الأشياء بطيئة كثيرًا. خاصة عند تنفيذه على الجهاز. كان الأمر جيدًا عند تشغيل تصحيح أخطاء الكروم لأنه يتم تنفيذه باستخدام محرك جافا سكريبت الكروم الذي يعد أقوى بكثير (الكمبيوتر المحمول مقابل الجهاز).

بعد إزالة كل السجل (الإجراء) ، أصبح الأمر أفضل بكثير الآن.

دودي

doddys يعمل لي 👍

doddys أنا

سأغلق هذا. للرجوع إليها في المستقبل ، تأكد من عدم وجود console.log في أي مكان في الكود ، سواء كان ذلك البرنامج الوسيط للإعادة أو في التصحيح لهذه المكتبة

أهلا.
أنا أواجه هذا. حاولت إزالة جميع المكالمات إلى console.log طوال المشروع ، وحاولت إيقاف تشغيل وضع dev ، وحاولت استخدام / عدم استخدام تصحيح أخطاء chrome ... حتى أنني حاولت إنشاء إصدار APK وتشغيل العرض التوضيحي التفاعلي الخاص بك كما هو ... والمشكلة لا تزال قائمة.
قد تبدو الانتقالات جيدة لبعض الوقت ، ولكن إذا ضغطت على المتصفح من خلال الرجوع للخلف وللأمام ، فسيتم إبطاء التطبيق في النهاية وقد يتجمد في بعض الأحيان.
يوجد تعليق على مشكلة التفاعل الأصلية ذات الصلة https://github.com/facebook/react-native/issues/3049#issuecomment -143505930 التي تصف حلاً.
في الملاحظات الرسمية لـ React Native حول أداء Android ، تم ذكر هذا الحل أيضًا: https://facebook.github.io/react-native/docs/performance.html#slow -navigator-transitions
هل سيكون من الممكن دمج حل InteractionManager على رد فعل - أصلي - جهاز توجيه - تدفق بطريقة ما؟
حتى ذلك الحين أشعر أنني لا أستطيع حقًا استخدام الوحدة على أجهزة Android ، وهو أمر مؤسف حقًا.

كنت أحاول تحديث المثال اعتبارًا من اليوم باستخدام جهاز محاكاة ومحاكاة Android حقيقيين وكان ببساطة غير قابل للاستخدام.
حاولت تحديث package.json حتى أستخدم أحدث react-native "react-native": "^0.25.1", والآن يعمل بسلاسة.

عند التشغيل على جهاز Android الفعلي يكون
متصلاً بـ USB تحتاج إلى تشغيل ما يلي
من سطر الأوامر.

$ react-native start
$ adb reverse tcp:8081 tcp:8081
$ react-native run-android

أوقف تشغيل "JS Dev Mode

سترغب في التأكد من إيقاف تشغيل "JS Dev Mode" أو غير ذلك
سوف يعمل ببطء مؤلم على الجهاز.

بعد تشغيل "reaction-native run-android" يجب "هز" جهازك
لإحضار القائمة. حدد "إعدادات Dev" ثم قم بإلغاء تحديد "JS Dev Mode".

بعد ذلك ، شغّل "رد فعل - تشغيل - أندرويد" مرة أخرى ، ويجب أن يكون أكثر من ذلك
أداء ، على الأقل أتمنى لك :)

ما ورد أعلاه لم يصلح. لا يمكن استخدام جهاز Nexus 6 الذي يعمل ببطء شديد في تصحيح الأخطاء.
من يمكنه معرفة كيفية تصحيح أخطاء إصدار Android الخاص بك ...
لم يتم حل المشكلة لفترة طويلة ...

بالنسبة إلى nexus 5x لم يتم إصلاحه أيضًا.

يبدو أن هناك طلب سحب من RN (https://github.com/facebook/react-native/pull/10289) يقوم بتحديث NavigationExperimental لإلغاء تحميل الرسوم المتحركة من مؤشر ترابط JS ، والذي يجب أن يحل هذه المشكلة.

ومع ذلك ، فإن رد فعل-أصلية-موجه-تدفق يستخدم إصدارًا متشعبًا من NavigationExperimental (رد فعل-أصلي-تنقل-تجريبي) ، والذي يحتوي على بعض الملفات المهملة (على سبيل المثال ، أصبح NavigationAnimatedView الآن NavigationTransitioner) لذا من المحتمل أن يكون من المفيد تحديث ذلك.

aksonov هل من الممكن أن تتخلص من رد فعل الأم والملاحة والتجريبية؟ يبدو أن الاحتفاظ بنسخة متشعبة أمر مشكوك فيه نظرًا لتكرار التغييرات.

على جهاز nexus 5 بطيء جدًا مع تشغيل التصحيح عن بُعد

لدي نفس المشكلة. على المحاكي يعمل بشكل جيد. ولكن على الجهاز ، تكون الرسوم المتحركة بطيئة للغاية (التوجيه بين الشاشات التي تتحرك أفقيًا / رأسيًا) عند تمكين تصحيح أخطاء js عن بُعد. سيئة للغاية ، سوف تضطر إلى تشغيله وإيقافه كثيرًا.
ويكو ليني 2

فقط للحصول على معلومات:

قبل أيام ، أدركت أنه عندما أقوم بتشغيل "android-native-response" للتثبيت في جهازي ، بدون سبب وجيه ، يستغرق الأمر حوالي 15/20 دقيقة للانتهاء (نعم ، أنا بطل في الانتظار ). لذلك بعد الجري والتشغيل بشكل مؤلم ، وتغيير بعض الأشياء ، اكتشفت أن مشكلتي كانت أنني خلف وكيل وفيه قمت بالتعليق على تكوينات الوكيل الخاصة بي في ملف gradle.properties. لذلك ألغيت التكوينات وكل شيء يعمل بشكل أسرع مرة أخرى. لا أعرف حقًا السبب ، ولكنه يعمل من أجلي ، وللتأكد من أنني أعلق على هذه التكوينات مرة أخرى وكل شيء يعمل ببطء مرة أخرى. لذلك ، إذا كان هناك شخص ما يواجه هذه المشكلة وعملت أي حلول أخرى ، فحاول وضع هذه السطور في ملف yout gradle.properties (فقط إذا كنت خلف الوكيل ، بالطبع):

systemProp.http.proxyHost=192.168.X.XX //put your server IP here
systemProp.http.proxyPort=8888 //put your server PORT here
systemProp.http.proxyUser=xxxxxxx //put your PROXY USER here
systemProp.http.proxyPassword=xxxxxxx //put your PROXY USER PASSWORD here

systemProp.https.proxyHost=192.168.X.XX //put your server IP here
systemProp.https.proxyPort=8888 //put your server PORT here
systemProp.https.proxyUser=xxxxxxx //put your PROXY USER here
systemProp.https.proxyPassword=xxxxxxx //put your PROXY USER PASSWORD here

آمل أن يساعد هذا شخص ما.

مرحبًا يا رفاق ، هذا هو أكبر تأثير بالنسبة لي (بصرف النظر عن dev=false وتعطيل تصحيح أخطاء js عن بُعد)

المشكلة

انتقالات جهاز التوجيه + android + react-native-svg

الحل

من الواضح محاولة تجنب Svg ، ولكن إذا كان عليك استخدامها ، فقم بتأخير عرضها حتى يتم إجراء الانتقال. يمكنك استخدام شكل مختلف من هذه التقنية: https://facebook.github.io/react-native/docs/performance.html#slow -navigator-transitions

في حالتي ، صور svg قليلة جدًا ، ولكن لحسن الحظ يتم عرضها في الجزء السفلي من الشاشة ، لذلك يحتاج المستخدم إلى التمرير من أجل رؤيتها. لذلك كان لتأخير تقديم تلك svgs تأثير كبير في الأداء (في البداية كان حوالي 4 ثوانٍ وبعد ذلك كان أقل من 1 ثانية تقريبًا).

التأخير أمر صعب للغاية بطريقته الخاصة ، لذلك قمت بإنشاء HOC للقيام بذلك. هذا هو الجوهر (ضع في الاعتبار ما كتبته في TS وقمت للتو بتخطيط معلومات الكتابة بحيث تصبح JS لكنني لم أجربها):

import React from 'react'
import { InteractionManager } from 'react-native';

const MAX_DELAY = 500;

export default function providePartialRender(Component) {
  return class PartialRenderProvider extends React.Component {
    // initialize state (same as inside the constructor, just syntax sugar)
    state = {
      partialRender: true,
    };

    componentDidMount() {
      const updatePartialRender = () => {
        this.setState(state => {
          state.partialRender = false
          return state;
        });
      }
      // workaround https://github.com/facebook/react-native/issues/8624
      let called = false;
      const timeout = setTimeout(() => { called = true; updatePartialRender() }, MAX_DELAY);
      InteractionManager.runAfterInteractions(() => {
        if (called) return;
        clearTimeout(timeout);
        updatePartialRender();
      });
    }

    render() {
      const props = Object.assign(
        {},
        this.props,
        { partialRender: this.state.partialRender }
      );

      return <Component {...props}/>
    }
  }
}

حتى الآن ، سيكون للمكونات التي تقوم بتحسينها باستخدام هذا المكوّن الأعلى عنصرًا جديدًا يسمى partialRender والذي سيخبرهم ما إذا كان سيتم عرض نسخة خفيفة الوزن من المكون ( partialRender = true ) أو عرض كل شيء ( partialRender = false partialRender = true ) partialRender = false ).

راجع https://reactnavigation.org/ للتعرف على الملاح "الرسمي" الجديد من Facebook ، والذي يستخدم الرسوم المتحركة الأصلية للانتقالات.

Jickelsen ما مدى الرسمية هو؟

adambene تحقق من قائمة المتعاونين.

فقط قم بإيقاف تشغيل Chrome Debugger وسيكون كل شيء سريعًا :)

doddys أنت رجل عظيم! أنت تعرفها؟

doddys شكرا

غير محلول

"رد فعل جهاز التوجيه الأصلي تدفق": "4.0.6"،

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات