|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
04.06.2010, 12:45 | #11 | |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
Код:
Цитата:
2)вы не знаете что такое быстрая булева алгебра. так что ваш код будет гораздо больше по объему.(текста) по ассемблеру он тот же. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. Последний раз редактировалось Пепел Феникса; 04.06.2010 в 14:02. |
|
04.06.2010, 14:50 | #12 |
Trust no one.
Старожил
Регистрация: 07.04.2009
Сообщений: 6,526
|
Ого! Не ожидал столько!
Я так понял, что наиболее оптимизированный вариант из предложенных - Код:
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ |
04.06.2010, 14:54 | #13 | |
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
Все равно попробуй замерить время еще и для
Цитата:
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика |
|
04.06.2010, 15:21 | #14 | |
я получил эту роль
Старожил
Регистрация: 25.05.2007
Сообщений: 3,694
|
Цитата:
InRect(X, Y, X1, Y1, X2, Y2 : Integer) Заменить на InRect(X, Y: Integer; rect: TRect) или InRect(point: TPoint; rect: TRect) С 3 и менее параметрами компилятор будет использовать модель вызова fastcall (передача параметров через регистры) - сэкономит пару-тройку тактов Можно попробовать дописать директиву inline - тогда в коде вместо вызова процедуры по возможности будет использоваться само тело процедуры Кстати, есть готовая функция в Types Код:
пыщь
Последний раз редактировалось JTG; 04.06.2010 в 15:37. |
|
04.06.2010, 15:25 | #15 | |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
Цитата:
все чему не хватило места в регистрах идет через стек. InRect(X, Y: Integer; rect: TRect) или InRect(point: TPoint; rect: TRect) в регистрах не поместится, разве что юзая указатель var rect:TRect(во втором случае тоже Var нужен). так что не вижу выгоды...один хрен память задействуется. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
|
04.06.2010, 16:02 | #16 |
я получил эту роль
Старожил
Регистрация: 25.05.2007
Сообщений: 3,694
|
Угу, с var есть незначительный выигрыш в скорости
Код:
пыщь
|
04.06.2010, 16:29 | #17 | |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
Цитата:
тут скорее всего будет проигрыш скорости, ибо адресации по указателю, который находится на каком то адресе у нас нет. будет mov edx,[esp+4] cmp ecx,edx//сравнение третьего и четвертого а лучше cmp ecx,[esp+4] так что на самом деле, помоему оптимизировать уже не куда. разве что стоит присмотреться к варианту Уткина, но и он не идеален. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как обойти "преобразование типа из "string" в "float" невозможно" | lexluter1988 | Помощь студентам | 1 | 07.08.2010 12:23 |
DebugAPI перехват функции "на" и "после" | Cj_ | Win Api | 1 | 20.04.2010 01:11 |
"ОКРВВЕРХ", "ОКР", "ЕСЛИ". Как бы их связать. | Каравай | Microsoft Office Excel | 13 | 17.02.2010 09:53 |
при вводе на листе "магазин"- код товара появлялось "описание" товара из "склада" с "продажной ценой" | aleksei78 | Microsoft Office Excel | 13 | 25.08.2009 12:04 |