реклама на сайте
подробности

 
 
> Оптимизация LwIP
Veg@
сообщение Feb 26 2010, 19:24
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 90
Регистрация: 16-09-09
Пользователь №: 52 416



Код
    struct pbuf *q, *pq;
    char* ptr;
    . . .
    ptr = pq->payload;
    for(q = p; q != NULL; q = q->next) {
        memcpy(ptr, q->payload, q->len);
        ptr += q->len;
    }
    . . .

Данный код используется в LwIP для расположения содержимого буферов в памяти последовательно. На его выполнение затрачивается почти половина всего времени отправки UDP-пакета (0.14мс / 0.31мс). Для каждого пакета по 1484Б происходит две итерации.
Возможно ли ускорить это действие (DMA) или как-нибудь обойти (например, заранее располагая буферы в памяти в нужном порядке) ? Спасибо.
Железо: DK-NIOS-2S60N (StratixII), стандартная сборка Nios - Full featured.

Сообщение отредактировал Veg@ - Feb 26 2010, 19:33
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Veg@
сообщение Feb 27 2010, 12:14
Сообщение #2


Частый гость
**

Группа: Участник
Сообщений: 90
Регистрация: 16-09-09
Пользователь №: 52 416



Цитата(sergeeff @ Feb 27 2010, 13:26) *
А что не понятно? Если ваш UDP пакет уходит за две итерации, значит размер одного pbuf мал для его размещения целиком. По крайней мере, можно передавать за одну итерацию.

Размер одного буфера 1536Б. И вообще, я думаю, не обязательно весь отправляемый пакет помещается в один буфер; возможно, он составляется из нескольких (напр., заголовки+данные).
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Veg@   Оптимизация LwIP   Feb 26 2010, 19:24
- - sergeeff   Почитайте здесь : http://old.nabble.com/Tunning-TC...   Feb 26 2010, 22:43
- - Veg@   Цитата(sergeeff @ Feb 27 2010, 01:43) Поч...   Feb 27 2010, 09:57
- - sergeeff   А что не понятно? Если ваш UDP пакет уходит за две...   Feb 27 2010, 10:26
|- - sergeeff   Цитата(Veg@ @ Feb 27 2010, 15:14) Размер ...   Feb 27 2010, 12:52
- - Veg@   Функция memcpy выполняется довольно медленно, поэт...   Feb 27 2010, 15:50
- - vadimuzzz   код memcpy доступен, идет в стандартной поставке. ...   Feb 27 2010, 17:31
- - Veg@   Цитатаесли все равно медленно - тогда DMA Т.е. с D...   Feb 27 2010, 19:22
|- - dspx   Цитата(Veg@ @ Feb 27 2010, 22:22) Т.е. с ...   Feb 27 2010, 19:48
|- - vadimuzzz   Цитата(Veg@ @ Feb 28 2010, 01:22) Т.е. с ...   Feb 28 2010, 03:00
|- - sergeeff   Цитата(vadimuzzz @ Feb 28 2010, 06:00) ус...   Feb 28 2010, 10:08
- - sergeeff   А что автор так уперся в оптимизацию цикла for(......   Feb 27 2010, 23:55
- - Veg@   Цитата(sergeeff @ Feb 28 2010, 02:55) А ч...   Feb 28 2010, 10:21
- - Veg@   ЦитатаНа самом деле топикстартер ничего не показал...   Feb 28 2010, 20:35
- - sergeeff   Вы запустите какой-нибудь обмен по UDP с компьютер...   Feb 28 2010, 23:22
- - Veg@   Цитата(sergeeff @ Mar 1 2010, 02:22) Вы з...   Mar 4 2010, 18:47


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th July 2025 - 05:18
Рейтинг@Mail.ru


Страница сгенерированна за 0.01385 секунд с 7
ELECTRONIX ©2004-2016