| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > Ускорение копирования в память (memcpy) |
| Автор: marcusmae 3.1.2008, 21:09 |
| Всем привет, Встретил интересную статью по теме : http://www.embedded.com/columns/technicalinsights/19205567?_requestid=672625 В ней рассматриваются различные модификации стандартного побитового копирования памяти с целью увеличения производительности
Статья старая, но тема, по-моему, вечно актуальная Было бы интересно узнать Ваши мнения и experience в этой сфере. |
| Автор: bsa 3.1.2008, 21:13 |
| Думаю, надо оптимизировать не столько скорость выполнения memcpy, сколько количество его вызовов. Скорость его выполнения ты вряд ли сможешь универсально увеличить (очень сомневаюсь, что разработчики libc ничего не оптимизировали), а вот сократить количество вызовов - вполне. |
| Автор: marcusmae 3.1.2008, 21:18 |
bsa, в том-то и дело, что в самой общей постановке задачи memcpy "скопируй отсюда сюда стока-то" нечего оптимизировать. Выигрыш появляется, если предъявить определённые требования к аргументам. В статье показано, что попытка универсиализировать memcpy, например, за счёт отдельной работы с "хорошим" промежутком и "плохими" хвостами, ничего не даёт. |
| Автор: jonie 3.1.2008, 21:44 |
| копирование можно делать по разному... можно байтами; можно DWORD-ми, и добивать остатки байтами; можно юзать mmx и другие раширения CPU.... |
| Автор: SergeCpp 3.1.2008, 21:48 |
| Рекомендую книгу Криса Касперски — Техника оптимизации программ. Эффективное использование памяти Там этот вопрос рассмотрен детально весьма |
| Автор: DrHex 4.9.2009, 15:47 |
| Криса Касперски — Техника оптимизации программ - а вот материалы то старые. В студии очень зорошо реализована данная функция. Моно еще попробывать mmx расширение. |
| Автор: MAKCim 5.9.2009, 08:58 | ||
ты не прав советую посмотреть сорсы memcpy ;) там не банальный movs |
| Автор: bsa 6.9.2009, 01:26 | ||
Угу. Там есть и "выравнивание указателей", и "копирование блоками"... |
| Автор: Artemon 6.9.2009, 18:24 |
| в 99,9% узкое место в алгоритме, а не в ф-ии копирования памяти. |