![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
marcusmae |
|
|||
![]() stravaganza ![]() ![]() Профиль Группа: Участник Сообщений: 874 Регистрация: 26.3.2006 Репутация: 5 Всего: 39 |
Всем привет,
Встретил интересную статью по теме : Optimizing Memcpy improves speed (by Michael Morrow) В ней рассматриваются различные модификации стандартного побитового копирования памяти с целью увеличения производительности
Статья старая, но тема, по-моему, вечно актуальная ![]() Было бы интересно узнать Ваши мнения и experience в этой сфере. Это сообщение отредактировал(а) marcusmae - 3.1.2008, 21:11 -------------------- ἀπὸ μηχανῆς θεός |
|||
|
||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 63 Всего: 196 |
Думаю, надо оптимизировать не столько скорость выполнения memcpy, сколько количество его вызовов. Скорость его выполнения ты вряд ли сможешь универсально увеличить (очень сомневаюсь, что разработчики libc ничего не оптимизировали), а вот сократить количество вызовов - вполне.
|
|||
|
||||
marcusmae |
|
|||
![]() stravaganza ![]() ![]() Профиль Группа: Участник Сообщений: 874 Регистрация: 26.3.2006 Репутация: 5 Всего: 39 |
bsa, в том-то и дело, что в самой общей постановке задачи memcpy "скопируй отсюда сюда стока-то" нечего оптимизировать. Выигрыш появляется, если предъявить определённые требования к аргументам. В статье показано, что попытка универсиализировать memcpy, например, за счёт отдельной работы с "хорошим" промежутком и "плохими" хвостами, ничего не даёт. Это сообщение отредактировал(а) marcusmae - 3.1.2008, 21:21 -------------------- ἀπὸ μηχανῆς θεός |
|||
|
||||
jonie |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5613 Регистрация: 21.8.2005 Где: Владимир Репутация: 15 Всего: 118 |
копирование можно делать по разному...
можно байтами; можно DWORD-ми, и добивать остатки байтами; можно юзать mmx и другие раширения CPU.... -------------------- Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет... |
|||
|
||||
SergeCpp |
|
|||
![]() ![]() ![]() Профиль Группа: Участник Сообщений: 955 Регистрация: 8.8.2005 Где: At Home Репутация: 15 Всего: 124 |
Рекомендую книгу Криса Касперски — Техника оптимизации программ. Эффективное использование памяти
Там этот вопрос рассмотрен детально весьма |
|||
|
||||
marcusmae |
|
|||
![]() stravaganza ![]() ![]() Профиль Группа: Участник Сообщений: 874 Регистрация: 26.3.2006 Репутация: 5 Всего: 39 |
SergeCpp, спасибо! -------------------- ἀπὸ μηχανῆς θεός |
|||
|
||||
DrHex |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 171 Регистрация: 2.5.2009 Репутация: нет Всего: нет |
Криса Касперски — Техника оптимизации программ - а вот материалы то старые.
В студии очень зорошо реализована данная функция. Моно еще попробывать mmx расширение. --------------------
google.com и это все. |
|||
|
||||
MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 52 Всего: 207 |
ты не прав советую посмотреть сорсы memcpy ;) там не банальный movs -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 63 Всего: 196 |
Угу. Там есть и "выравнивание указателей", и "копирование блоками"... |
|||
|
||||
Artemon |
|
|||
а ты мне нравишься ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1771 Регистрация: 24.2.2004 Где: Челябинск Репутация: 1 Всего: 20 |
в 99,9% узкое место в алгоритме, а не в ф-ии копирования памяти.
-------------------- Контроль топлива на топливозаправщиках, мониторинг автотранспорта, расчет зарплаты водителей www.rscat.ru |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |