python - nltk присоединяется к результатам

Прежде всего ответы действительно очень хорошие. Но есть проблема с утечкой памяти. Эта проблема часто известна в сообществе Android как «Утечка активности». Теперь, что именно это означает?

Когда происходит изменение конфигурации, например изменение ориентации, Android уничтожает Activity и воссоздает его. Обычно сборщик мусора просто очищает выделенную память от старого экземпляра Activity, и мы все хороши.

«Утечка активности» относится к ситуации, когда сборщик мусора не может очистить выделенную память старый экземпляр Activity, так как это being (strong) referenced из объекта, из которого жил экземпляр Activity. Каждое приложение для Android имеет определенный объем памяти, выделенный для него. Когда сборщик мусора не может освободить неиспользованную память, производительность приложения будет постепенно уменьшаться и, в конечном счете, сбой с ошибкой OutOfMemory.

Как определить, что приложение утечки памяти или нет? Самый быстрый способ - открыть вкладку «Память» в Android Studio и обратить внимание на выделенную память при изменении ориентации. Если выделенная память продолжает увеличиваться и никогда не уменьшается, тогда у вас есть утечка памяти.

1. Утечка памяти, когда пользователь меняет ориентацию.

Сначала вам нужно определить заставку в вашем ресурсе макета splashscreen.xml file

Пример кода для активности заставки.

public class Splash extends Activity {
 // 1. Create a static nested class that extends Runnable to start the main Activity
    private static class StartMainActivityRunnable implements Runnable {
        // 2. Make sure we keep the source Activity as a WeakReference (more on that later)
        private WeakReference mActivity;

        private StartMainActivityRunnable(Activity activity) {
         mActivity = new WeakReference(activity);
        }

        @Override
        public void run() {
         // 3. Check that the reference is valid and execute the code
            if (mActivity.get() != null) {
             Activity activity = mActivity.get();
             Intent mainIntent = new Intent(activity, MainActivity.class);
             activity.startActivity(mainIntent);
             activity.finish();
            }
        }
    }

    /** Duration of wait **/
    private final int SPLASH_DISPLAY_LENGTH = 1000;

    // 4. Declare the Handler as a member variable
    private Handler mHandler = new Handler();

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(icicle);
        setContentView(R.layout.splashscreen);

        // 5. Pass a new instance of StartMainActivityRunnable with reference to 'this'.
        mHandler.postDelayed(new StartMainActivityRunnable(this), SPLASH_DISPLAY_LENGTH);
    }

    // 6. Override onDestroy()
    @Override
    public void onDestroy() {
     // 7. Remove any delayed Runnable(s) and prevent them from executing.
     mHandler.removeCallbacksAndMessages(null);

     // 8. Eagerly clear mHandler allocated memory
     mHandler = null;
    }
}

Для получения дополнительной информации перейдите по этой ссылке

0
задан sharp 13 July 2018 в 18:14
поделиться

1 ответ

Попробуйте использовать список :

data_list = ['the gamers playing games','higher scores','sports']
result =[' '.join([ps.stem(w) for w in nltk.tokenize.word_tokenize(words)])    
     for words in data_list]
1
ответ дан Kasramvd 17 August 2018 в 12:16
поделиться
Другие вопросы по тегам:

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