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

 
 
> memcpy - почему побайтно?
DASM
сообщение Nov 21 2013, 16:14
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 3 644
Регистрация: 28-05-05
Пользователь №: 5 493



598 */
599 void *memcpy(void *dest, const void *src, size_t count)
600 {
601 char *tmp = dest;
602 const char *s = src;
603
604 while (count--)
605 *tmp++ = *s++;
606 return dest;
607 }
608 EXPORT_SYMBOL(memcpy);
Такой вот сурец из string.c ... видел более оптимизированную версию с раскруткой цикла. Что то не понимаю, это же дикие тормоза на 32 битнике. Но люди то солидные писали, в чем прикол?
Собственно это вариант общий для разных процев, обрамлен ifndef ARCH_MEMCPY, но. для Арм версия такая
for (i = __n >> 3; i > 0; i--) {
15 *d++ = *s++;
16 *d++ = *s++;
17 *d++ = *s++;
18 *d++ = *s++;
19 *d++ = *s++;
20 *d++ = *s++;
21 *d++ = *s++;
22 *d++ = *s++;
23 }
Что не шибко лучше.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
DASM
сообщение Nov 21 2013, 17:52
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 3 644
Регистрация: 28-05-05
Пользователь №: 5 493



Так это же исходники линуксовые, с kernel.org .Мне собственно говоря copy_to_user нужен, но он в итоге зовет этот самый memcpy. Объемы копирования большие, вот и заинтересовался скоростью.. Это же четыре обращения к памяти, в случае 32 битной и вне кеша — это даже не в четыре раза потеря, поболее может быть вроде как. char * никакой оптимизатор имхо заменять права не имеет на int*
Go to the top of the page
 
+Quote Post
sasamy
сообщение Nov 22 2013, 04:02
Сообщение #3


Знающий
****

Группа: Участник
Сообщений: 783
Регистрация: 22-11-08
Пользователь №: 41 858



Цитата(DASM @ Nov 21 2013, 21:52) *
Так это же исходники линуксовые, с kernel.org .Мне собственно говоря copy_to_user нужен, но он в итоге зовет этот самый memcpy.


Обсуждения оптимизаций для ARM были
http://comments.gmane.org/gmane.linux.port...m.kernel/251708

чем закончилось не знаю - посмотрите исходники текущего ядра с kernel.org, возможно уже все не так пессимистично как вы думаете sm.gif По крайней мере в новостях что-то припоминаю - проскакивало про использование NEON в ядре.

Сообщение отредактировал sasamy - Nov 22 2013, 04:05
Go to the top of the page
 
+Quote Post



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

 


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


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