|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
18.05.2011, 22:26 | #11 |
C/C++, Asm
Участник клуба
Регистрация: 02.03.2010
Сообщений: 1,323
|
map_data=map_data1;
ну, это меняет значение поинтера но не меняет данных. поэтому, нужно сделать CopyMemory map_data на вспомогательный буффер, потом CopyMemory map_data1 на map_data и в заключение CopyMemory вспомогательный буффер на map_data1. |
19.05.2011, 03:33 | #12 |
Пользователь
Регистрация: 14.09.2008
Сообщений: 61
|
Спасибо f.hump.
А кто может предложить как прочитать нормально вторую половину файла? Реально уже мыслей нет. Получается что если файл допустим весит 2*64*1024+2=131074 байт , то первую половину считываю без вопросов, т.е. первые 65537 байт, вторая половина начинается 65538 байта, что не кратно гранулярности и я теряю серьёзный кусок инфы. Как можно это решить? |
19.05.2011, 10:33 | #13 | |
C/C++, Asm
Участник клуба
Регистрация: 02.03.2010
Сообщений: 1,323
|
Цитата:
Только так. Последний раз редактировалось f.hump; 19.05.2011 в 10:40. |
|
19.05.2011, 11:21 | #14 |
добрый няша
Старожил
Регистрация: 29.10.2006
Сообщений: 4,804
|
мне кажется проще промэпить весь файл и сделать что-то в духе
Код:
Код:
если вы думаете что копирование цикле это долго, я могу вас успокоить: функции CopyMemory и memcpy копируют память также Последний раз редактировалось rpy3uH; 19.05.2011 в 11:26. |
19.05.2011, 12:01 | #15 | |
C/C++, Asm
Участник клуба
Регистрация: 02.03.2010
Сообщений: 1,323
|
Цитата:
Плюс ТС говорит о ситуации, когда загрузить весь файл в память невозможно, либо слишком ресурсорсемко. |
|
20.05.2011, 09:36 | #16 |
добрый няша
Старожил
Регистрация: 29.10.2006
Сообщений: 4,804
|
не всегда быстрее, проверено на личном опыте
|
20.05.2011, 10:16 | #17 |
C/C++, Asm
Участник клуба
Регистрация: 02.03.2010
Сообщений: 1,323
|
2 гру3ин
А можно пример, чтобы тоже на личном опыте проверить. |
20.05.2011, 10:33 | #18 |
добрый няша
Старожил
Регистрация: 29.10.2006
Сообщений: 4,804
|
конкретных примеров у меня нет, года три назад при написании лабы по алгоритмизации я хотел похвастаться перед преподом, сделал копирование через ассемблерную вставку через rep movsb, я получил уменьшение скорости. и к тому же всё заивисит от размеров данных и модели процессора.
вот тесты http://www.ezdoum.com/upload/cache/bandwidth.pdf вообще многие методы оптимизации которые были описаны в старых книгах по асму уже не работают на современных процах. Плюс есть куча дополнительных условий ускоряющих или замедляющих скорость выполнения иструкций, например, наличие искомых данных в кэше и т.д. и т.п. А если программа на С++ то ещё зависит от того что там сгененирует компилятор Последний раз редактировалось rpy3uH; 20.05.2011 в 10:42. |
20.05.2011, 14:58 | #19 |
C/C++, Asm
Участник клуба
Регистрация: 02.03.2010
Сообщений: 1,323
|
А... Известная тема.
Для тех кто хочет знать подробности читаем это: http://www.intel.com/Assets/PDF/manual/248966.pdf Ч: Заодно сам почитал. Пишут, что если кто хочет отжать максимум из REP MOVS, для объемов больше 16 байт, имеет смысл выравнивать память по 16-ти байтной границе. Последний раз редактировалось f.hump; 21.05.2011 в 10:17. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Вопрос по mySQL + Вопрос по RichEdit | HTL | Общие вопросы Delphi | 4 | 01.01.2010 20:22 |
Вопрос наверное про функции, а так точно даже не знаю про что. (Вопрос начинющего #6) | Albert2008 | Общие вопросы Delphi | 4 | 21.08.2008 15:33 |
вопрос по сокетам и общение как в ICQ.Сложный вопрос... | Руслантус | Общие вопросы C/C++ | 2 | 12.08.2008 21:10 |
вопрос по С# | Roberto | Фриланс | 1 | 17.05.2008 08:12 |
Вопрос | Mitron | О форуме и сайтах клуба | 1 | 11.02.2008 06:26 |