![]() |
Модераторы: gambit, Partizan |
![]() ![]() ![]() |
|
Artemon |
|
||||
а ты мне нравишься ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1771 Регистрация: 24.2.2004 Где: Челябинск Репутация: нет Всего: 20 |
Я сделал программу, которая читает BMP напрямую из файла на C++Builder, затем решил переписать ее на C#. Переписал и очень удивился, когда обнаружил, что скорость загрузки изображения в C# в 2 раза меньше чем в C++.
Скорость теряется в следующем куске:
Аналогичный код в C++
Может быть можно как-то оптимизировать данный кусок? -------------------- Контроль топлива на топливозаправщиках, мониторинг автотранспорта, расчет зарплаты водителей www.rscat.ru |
||||
|
|||||
Naum |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 743 Регистрация: 7.9.2005 Где: Саратов, ул. Поса дского, 298 Репутация: 1 Всего: 15 |
Попутный вопрос (может быть и ответом в этом топике). C++ Builder работает с GDI или с GDI+?
-------------------- У нас всего два праздника Новый год и ТЯПница. |
|||
|
||||
ivashkanet |
|
|||
![]() Кодю потиху ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3684 Регистрация: 23.2.2006 Где: Гомель, Беларусь Репутация: 11 Всего: 149 |
Т.е. прочитала пару байт --- поставила пиксель на картинке? Тогда это еще хорошо что всего двукратное падение ![]() Get/SetPixel работает не очень рационально. Это все плата за безопасность кода и др... Вариантов два: 1) Лучший:
2) Если нужна обработка пикселей до помещения в картинку нужно использовать неуправляемую память. т.е. unmanagement code ![]() |
|||
|
||||
mr.DUDA |
|
|||
![]() 3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 24 Всего: 232 |
Можно залочить картинку в массив и работать с ним. -------------------- ![]() |
|||
|
||||
juravel |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 32 Регистрация: 18.12.2006 Репутация: нет Всего: нет |
.
Можно залочить картинку в массив и работать с ним А как? ![]() Это сообщение отредактировал(а) juravel - 20.12.2006, 17:33 |
|||
|
||||
mr.DUDA |
|
|||
![]() 3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 24 Всего: 232 |
-------------------- ![]() |
|||
|
||||
ivashkanet |
|
|||
![]() Кодю потиху ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3684 Регистрация: 23.2.2006 Где: Гомель, Беларусь Репутация: 11 Всего: 149 |
Вот пример из MSDN
|
|||
|
||||
juravel |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 32 Регистрация: 18.12.2006 Репутация: нет Всего: нет |
Спасибо , mr.DUDA
![]() |
|||
|
||||
mr.DUDA |
|
|||
![]() 3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 24 Всего: 232 |
Пожалуйста.
-------------------- ![]() |
|||
|
||||
Madrid |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 97 Регистрация: 27.5.2006 Репутация: нет Всего: нет |
А как вообще можно померить скорость загрузки, к примеру, той же картинки?
|
|||
|
||||
mr.DUDA |
|
|||
![]() 3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 24 Всего: 232 |
Одна тема - один вопрос, но по существу: запоминаем время до загрузки, и сразу после загрузки. Вычитаем одно время из другого, получаем TimeSpan. Полное количество прошедших миллисекунд будет в св-ве TotalMilliseconds. Для операций, занимающих малое время (как загрузка небольшого битмапа) время будет настолько малым, что его не замерить таким способом - всегда будет возвращать случайное число = кванту времени потока (от 0 до 15..16 миллисекунд). Поэтому чтобы получить более-менее достоверный результат, нужно повторить операцию N раз и замерить общее время, которое разделить на N - это и будет искомое время выполнения. З.Ы. или профайлер юзать, как вариант ![]() -------------------- ![]() |
|||
|
||||
Madrid |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 97 Регистрация: 27.5.2006 Репутация: нет Всего: нет |
извиняюсь за ![]() |
|||
|
||||
ivashkanet |
|
|||
![]() Кодю потиху ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3684 Регистрация: 23.2.2006 Где: Гомель, Беларусь Репутация: 11 Всего: 149 |
||||
|
||||
mr.DUDA |
|
|||
![]() 3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 24 Всего: 232 |
jetBrains DotTrace рулит однозначно!
-------------------- ![]() |
|||
|
||||
![]() ![]() ![]() |
Прежде чем создать тему, посмотрите сюда: | |
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Разработка Windows Forms | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |