Android Socket Высокая загрузка ЦП - PullRequest
1 голос
/ 24 сентября 2011

Я сделал клиент / сервер ( android / pc ), и кажется, что использование сети от клиента использует много ЦП. Как и при получении только 4k-5k от сети, процессор увеличивается до 33 миллисекунд. Процессор может быть выше, чем 90-100 миллисекунд, если данные выше, как ~ 32 КБ.

Сначала я попробовал клиент ( сетевая часть ) в java-версии и после в c, и проблема все еще существует.

Я профилировал серверную часть, которая отправляет данные, и она использует около 0 миллисекунд.

Некоторые детали:

  • TCP соединение.
  • Клиент подключается к серверу, клиент отправляет запрос, сервер отправляет данные (кусок 4-10k), запрос на отправку клиента, сервер отправляет ...
  • Сетевая часть имеет резьбу.
  • Получить данные с помощью (recv или recv / select).
  • Смартфон: Nexus One.
  • Проверено в режиме профилировщика (только сетевая часть и отображение кадров в секунду / миллисекунд).
  • Проверено в Wifi (компьютер, телефон, сеть близко).

Дайте мне знать, если у вас есть предложения или вопросы.

Спасибо.

1 Ответ

1 голос
/ 24 сентября 2011

Используете ли вы BufferedOutputStream на стороне Android для записи данных?Если нет, он записывает его побайтно, что объясняет высокую загрузку ЦП.

Если это не так, пожалуйста, добавьте некоторый исходный код к вопросу.

...