Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
androbro
323 / 283 / 59
Регистрация: 17.10.2014
Сообщений: 835
#1

GC_CONCURRENT и Socet - Android

26.02.2015, 14:45. Просмотров 342. Ответов 4
Метки нет (Все метки)

Здравствуйте товарищи форумчане!

Обращаюсь к Вам по такому вопросу:
Есть код, который обращается к сокету за информацией (в AsynkTask):
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
                mySock = new Socket("192.168.0.117", 5001);
                out = new PrintWriter(new BufferedWriter( 
                        new OutputStreamWriter(mySock.getOutputStream())), true);
 
                reader = new BufferedReader(new InputStreamReader(mySock.getInputStream()));
 
                out.println(balanses);
                
                int weight;
                int status;
 
                Integer[] rez = new Integer[2];
 
                while (!mIsCancel){
                    weight = Integer.valueOf(reader.readLine());
                    status = Integer.valueOf(reader.readLine());
 
                    rez[0] = weight;
                    rez[1] = status;
 
                    publishProgress(rez);
 
                    out.println(balanses);
                }
Получается сокет открыли, далее крутимся в while и отправляем результаты.

Все вроде бы хорошо, да только смущает через чур частая работа GC (отрабатывает 2 раза в сек.):
Java
1
2
02-26 14:21:20.369: D/dalvikvm(24522): GC_CONCURRENT freed 471K, 10% free 11038K/12215K, paused 2ms+7ms
02-26 14:21:20.951: D/dalvikvm(24522): GC_CONCURRENT freed 485K, 10% free 11032K/12215K, paused 1ms+3ms
Так вот, хотелось бы узнать это нормальное поведение GC в данной ситуации или же необходимо что то менять в этом коде.
Буду благодарен любым разъяснениям по данной теме.
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.02.2015, 14:45     GC_CONCURRENT и Socet
Посмотрите здесь:

Проблемы с материнской платой ga-p25-ds4 775 socet.
Подскажите тихий куллер на Intel 775 socet
MMO RPG SOCET SERVER на Perl , C# или Java
Delphi работа с Socet ами Delphi
Работа с Socet для создания чата на с++ C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
YuraAAA
1565 / 1307 / 269
Регистрация: 25.10.2009
Сообщений: 3,424
Записей в блоге: 2
26.02.2015, 16:23     GC_CONCURRENT и Socet #2
androbro, в принципе, до 2х раз в секунду это нормальное поведение GC.
В Вашем коде я не увидел, например, массового создания локальных переменных в цикле что могло бы спровоцировать частый вызов коллектора.
androbro
323 / 283 / 59
Регистрация: 17.10.2014
Сообщений: 835
26.02.2015, 16:35  [ТС]     GC_CONCURRENT и Socet #3
Цитата Сообщение от YuraAAA Посмотреть сообщение
я не увидел, например, массового создания локальных переменных в цикле что могло бы спровоцировать частый вызов коллектора.
вот и мне стало интересно, просто изначально цикл был в таком виде:
Java
1
2
3
4
5
6
                while (!mIsCancel){
                    weight = Integer.valueOf(reader.readLine());
                    status = Integer.valueOf(reader.readLine());
                    publishProgress(new Integer[]{weight, status});
                    out.println(balanses);
                }
Я и подумал что GC часто вызывается из-за new Integer[]{weight, status}, -изменил, но на поведение коллектора это никак не повлияло
YuraAAA
1565 / 1307 / 269
Регистрация: 25.10.2009
Сообщений: 3,424
Записей в блоге: 2
27.02.2015, 10:52     GC_CONCURRENT и Socet #4
Сообщение было отмечено автором темы, экспертом или модератором как ответ
androbro, подключитесь с помощью DDMS, посмотрите на работу GC, на выделение памяти. У Вас он должен быть пилообразный (за счёт вызова println в том числе). Если память не течёт - забейте, всё окей.
androbro
323 / 283 / 59
Регистрация: 17.10.2014
Сообщений: 835
27.02.2015, 11:27  [ТС]     GC_CONCURRENT и Socet #5
YuraAAA, ну в общем немного помониторив DDMS с параллельным чтением этой статьи, пришел к выводу что все норм.
Спасибо!
Yandex
Объявления
27.02.2015, 11:27     GC_CONCURRENT и Socet
Ответ Создать тему
Опции темы

Текущее время: 20:59. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru