Слишком много на основной теме, несмотря на создание потоков [duplicate]

Я тоже получил эту ошибку на моем mac. Я использую «npm run dev» для запуска приложения nodejs в окнах, и он отлично работает. но я получил эту ошибку на моей mac-ошибке: Error: bind EACCES null: 80 mac.

решение № 1: «Отдайте корневой доступ и запустите его (что обычно). используйте 'sudo npm run dev' и вам нужно ввести пароль, это работает для меня. надеюсь, что это может помочь!

ссылка: Ошибка Node.js EACCES при прослушивании на порту http 80 (разрешение отклонено)

284
задан hasnain_ahmad 28 June 2016 в 07:03
поделиться

14 ответов

У меня тоже была такая же проблема. Мой был случай, когда я использовал фоновое изображение, которое было в drawables. Это конкретное изображение было около 130 кБ и использовалось во время заставки и домашней страницы в моем приложении для Android.

Solution - я просто сдвинул это конкретное изображение в папку drawables-xxx из drawables и освободило большую часть памяти, занятой в фоновом режиме, и пропущенные кадры больше не пропускали.

Update Используйте папку для рисования ресурса 'nodp' для хранения файлов обратных ссылок. Будет ли приоритетная папка с возможностью рисования или drawable-nodpi иметь приоритет?

51
ответ дан Community 17 August 2018 в 09:34
поделиться
  • 1
    У меня просто есть приложение, где, если я нажму кнопку, фоновое изображение кнопки меняется и кнопка не имеет значения. Как я делаю слишком много работы :( – Remian8985 6 August 2015 в 10:45
  • 2
    @ Remian8985 - Изменение фонового изображения для кнопки (при условии, что вы загружаете это изображение) должно выполняться в AsyncTask - для выполнения этой операции загрузки фона и публикации результата в потоке пользовательского интерфейса (поставьте изображение назад). См. Ссылку Android Reference – BenJaminSila 17 April 2016 в 00:19
  • 3
    Я переместил мое большое фоновое изображение с рисунка на mipmap-xxxhdpi, и он сделал трюк! – bgplaya 16 May 2016 в 12:41
  • 4
    @BenJaminSila меняет фон в AsyncTask? В самом деле? – user25 23 August 2016 в 09:59
  • 5
    Вы много помогли. благодаря – N.Droid 24 January 2017 в 12:28
  • 6
    Это решение делает трюк. Вместо этого я использую папку drawable-xxxhdpi вместо drawable, что значительно уменьшает используемую память (~ 70 процентов меньше). Также хорошо знать, экраны с одинаковым размером варьируются в размере DPI. Отношение между пикселями между ними: ldpi = 1:0.75, mdpi = 1:1, hdpi = 1:1.5, xhdpi = 1:2, xxhdpi = 1:3, xxxhdpi = 1:4. Используя папку drawable-xxxhdpi, вы позволяете масштабировать изображения на экране вашего устройства, что уменьшает потребление памяти и процессора. – Timo Bähr 27 January 2017 в 11:41
  • 7
    @ user25 "при условии, что вы загружаете это изображение & quot; – forresthopkinsa 9 June 2017 в 18:51
  • 8
    Перемещение изображений с drawable в drawable-nodpi предотвращает получение приложения Out of Memory Error. – Shruti 20 September 2017 в 07:12
  • 9
    О, мой бог ... спасибо! У меня было изображение в папке с возможностью рисования, и это сделало мое приложение медленным, как черт (хотя изображение было всего 100 кб !!!). После создания файлов drawable-xxx (я использовал Android Drawable Importer) мое приложение чертовски быстро. Большое спасибо! – error1337 20 October 2017 в 10:21
  • 10
    «Когда это сообщение появляется в эмуляторе Android и количество пропущенных кадров довольно мало (& lt; 100), тогда вы можете сделать безопасную ставку медленного эмулятора», Это все еще применяется сегодня? Эмуляторы становятся довольно быстрыми? – Robin Dijkhof 9 July 2018 в 06:50

Сначала прочитайте предупреждение. Это говорит о большей нагрузке на основной поток. Так что вам нужно просто запустить функции с большим количеством работы в потоке.

0
ответ дан Credoz 17 August 2018 в 09:34
поделиться

Вы можете использовать библиотеку Glide для загрузки изображений .. она будет загружать изображение в фоновый поток ..

5
ответ дан HarshitG 17 August 2018 в 09:34
поделиться
  • 1
    Как мне это сделать? – Soumya Rauth 24 December 2016 в 08:47
  • 2
    Уменьшите размер изображения либо с помощью java-кода, либо используйте Photoshop для обрезки изображений. Также сжимайте изображения с помощью compress.io – HarshitG 4 April 2017 в 17:10

После выполнения большого количества R & amp; D по этой проблеме я получил решение,

. В моем случае я использую Службу, которая будет запускаться каждые 2 секунды и с runonUIThread, мне было интересно, была ли проблема там, но не за что. Следующая проблема, которую я обнаружил, заключается в том, что я использую большое изображение в приложении App, и эта проблема.

Я удалил изображения и установил новые изображения.

Заключение: - Посмотрите на свою код есть какой-либо необработанный файл, который вы используете, имеет большой размер.

0
ответ дан Hector Morris 17 August 2018 в 09:34
поделиться

Попытайтесь использовать следующие стратегии, чтобы улучшить производительность вашего приложения:

  • Если возможно, используйте многопоточное программирование. Преимущества производительности огромны, даже если ваш смартфон имеет одно ядро ​​(потоки могут работать в разных ядрах, если процессор имеет два или более). Полезно сделать вашу логику приложения отделенной от пользовательского интерфейса. Используйте Java-потоки, AsyncTask или IntentService. Проверьте это .
  • Прочитайте и следуйте советам по разным характеристикам веб-сайта разработки Android. Проверьте здесь .
13
ответ дан MigDus 17 August 2018 в 09:34
поделиться

У моего приложения была такая же проблема. Но он не делал ничего, кроме отображения на нем списка карточек и текста. Ничего не работает в фоновом режиме. Но затем после некоторого исследования выяснилось, что изображение, установленное для фона карты, вызывало это, хотя оно было небольшим (350kb). Затем я преобразовал изображение в 9patch изображений, используя http://romannurik.github.io/AndroidAssetStudio/index.html . Это сработало для меня.

0
ответ дан naamadheya 17 August 2018 в 09:34
поделиться

У меня была та же проблема. Android-эмулятор отлично работал на Android & lt; = 6.0. Когда я пробовал эмулятор Nexus 5 (Android 6.0), приложение работало очень медленно с I/Choreographer: Skipped frames в журналах.

Итак, я решил эту проблему, изменив в опции Manifest file hardwareAccelerated значение true например:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.myapplication">

    <application android:hardwareAccelerated="true">
        ...
    </application>
</manifest>
4
ответ дан phen0menon 17 August 2018 в 09:34
поделиться

У меня была та же проблема. В моем случае у меня было 2 вложенных Relative Layouts. RelativeLayout всегда должен выполнять два прохода. Если вы вложите RelativeLayouts, вы получите экспоненциальный алгоритм измерения.

5
ответ дан Radoslav 17 August 2018 в 09:34
поделиться

У меня была та же проблема. Когда я запускал код на другом компьютере, он работал нормально. На моем, однако, он отобразил «Приложение может делать слишком много работы над своим основным потоком».

Я решил проблему, перезапустив студию Android [File -> Invalidated caches / Restart -> нажмите «Invalidate and Restart»].

-1
ответ дан Rob 17 August 2018 в 09:34
поделиться

Я не эксперт, но я получил это сообщение отладки, когда я хотел отправить данные из приложения для Android на веб-сервер. Хотя я использовал класс AsyncTask и выполнял передачу данных в фоновом режиме, для получения данных результата с сервера я использовал метод get () класса AsyncTask, который делает синхронный пользовательский интерфейс, что означает, что ваш интерфейс будет слишком долго ждать. Поэтому мой совет заключается в том, чтобы ваше приложение выполняло все сетевые задачи в отдельном потоке.

7
ответ дан saba 17 August 2018 в 09:34
поделиться

У меня такая же проблема при разработке приложения, которое использует много доступных png-файлов в макете. Я также попытался максимально оптимизировать свой код .. но это не сработало для меня. Тогда я попытался уменьшить размер этих png .. и угадать, что он работает абсолютно нормально. Поэтому мое предложение - уменьшить размер доступных ресурсов, если они есть ..

-2
ответ дан Shubham Ranakoti 17 August 2018 в 09:34
поделиться

Другой распространенной причиной задержек в потоке пользовательского интерфейса является доступ SharedPreferences. Когда вы впервые вызываете PreferenceManager.getSharedPreferences и другие подобные методы, соответствующий файл .xml сразу загружается и анализируется в том же потоке .

Один из хороших способов Борьба с этой проблемой вызывает сначала загрузку SharedPreference из фонового потока, как можно раньше (например, из onCreate вашего класса Application). Таким образом, объект предпочтения может быть уже сконструирован к тому моменту, когда вы захотите его использовать.

К сожалению, иногда чтение файлов предпочтений необходимо на ранних этапах запуска (например, в начальной операции или даже в приложении сам). В таких случаях по-прежнему можно избежать срыва UI с помощью MessageQueue.IdleHandler. Сделайте все, что вам нужно для выполнения в основном потоке, а затем установите IdleHandler для выполнения кода, как только ваша активность будет полностью нарисована. В этом Runnable вы должны иметь доступ к SharedPreferences, не задерживая слишком много операций рисования и делая Хореографа недовольными.

16
ответ дан user1643723 17 August 2018 в 09:34
поделиться
  • 1
    Эй, я довольно новичок в Android Studio. Вы имеете в виду создание AsyncTask в методе onCreate MainActivity и определение общего предпочтения? – AlexioVay 22 June 2016 в 20:31

Как было сказано выше, «пропущено 55 кадров!» означает, что в вашем приложении используется некоторая тяжелая обработка.

Для моего случая в моем приложении нет тяжелого процесса. Я дважды и тройной проверил все и удалил этот процесс, я думаю, был немного тяжелым.

Я удалил фрагменты, действия, библиотеки, пока не осталось только скелет. Но проблема все же не исчезла. Я решил проверить ресурсы и нашел несколько значков, и фон, который я использую, довольно большой, поскольку я забыл проверить размер этих ресурсов.

Итак, моё предложение - если ни один из приведенных выше ответов не поможет, вы также можете проверить размер файлов ресурсов.

170
ответ дан Willi Mentzel 17 August 2018 в 09:34
поделиться
  • 1
    Вы абсолютный гениальный, я уменьшил 4 размера изображения на 90%, а мое приложение - flyin !!!! Отличная идея!!! – Jenny 31 May 2016 в 02:03
  • 2
    @sithu, ваше предложение сработало для меня. спасибо – Shashanth 23 August 2016 в 10:50
  • 3
    Работал и для меня. У меня было приложение, которое выполняло очень мало работы, но было медленным и медленным. Я продолжал пропускать кадры кадров. Как только я удалил фон из своей деятельности, все было в порядке. Благодаря! – akrabi 9 October 2016 в 20:31
  • 4
    Отличный ответ, я считаю, что это была моя проблема. Я попробовал кучу других (довольно востребованных) решений, и приложение было так же медленным. Я достал все веб-сервисы и попытался оптимизировать свой код до костей. Не работал, потом я это увидел. Как только я удалил фоновое изображение (самое большое изображение у меня), приложение работает так же быстро, как вы можете щелкнуть мышью, даже со старым «медленным». код. – M Barbosa 18 February 2017 в 18:53
  • 5
    вы сделали мой день! – Nicolas Mastromarino 17 March 2017 в 20:04
  • 6
5
ответ дан HarshitG 6 September 2018 в 07:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: