Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Что потенциально быстрее. / 6 сообщений из 6, страница 1 из 1
19.08.2006, 15:45
    #33930356
Aklin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что потенциально быстрее.
Есь функция, принимающяя 8 параметром. Каждый из параметров принимает значения от 0, 1, 2, 3. Всего - 4*4*4*4*4*4*4*4 вариантов = 2^16 = 65536.
Ответом функции будет значение массива.

Вопрос. Что потенциально быстрее:
а)
Код: plaintext
1.
2.
3.
4.
Sub AAA(am4 as Byte, am3 as Byte, am2 as Byte, am1 as Byte, ap1 as Byte, ap2 as Byte, ap3 as Byte, ap4 as Byte) as Long
    AAA = m(am4)(am3)(am2)(am1)(ap1)(ap2)(ap3)(ap4)
End Sub
aaa1 = AAA(am4, am3,am2, am1, ap1, ap2, ap3, ap4)

б)
Код: plaintext
1.
2.
3.
4.
5.
Sub AAA(am4 as Byte, am3 as Byte, am2 as Byte, am1 as Byte, ap1 as Byte, ap2 as Byte, ap3 as Byte, ap4 as Byte) as Long
    AAA = m(am4 * 16384  + am3 *  4096  + am2 * 1024  + am1 *  256 + ap1 *  64  + ap2 *  16  + ap3 *  4  + ap4)
End Sub

aaa1 = AAA(am4, am3,am2, am1, ap1, ap2, ap3, ap4)

в)
Код: plaintext
1.
2.
3.
4.
Sub AAA(Val as Long) as Long
    AAA = m(Val)
End Sub
aaa1 = AAA(am4 * 16384  + am3 *  4096  + am2 * 1024  + am1 *  256 + ap1 *  64  + ap2 *  16  + ap3 *  4  + ap4)

Заранее Спасибо.
...
Рейтинг: 0 / 0
19.08.2006, 19:50
    #33930513
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что потенциально быстрее.
Прогони в цикле каждый способ и сравни время выполнения.
...
Рейтинг: 0 / 0
19.08.2006, 19:52
    #33930515
Aklin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что потенциально быстрее.
AntonariyПрогони в цикле каждый способ и сравни время выполнения.
Для этого придеться пол класса каждый раз переписывать (под 500 строк мин)
...
Рейтинг: 0 / 0
21.08.2006, 09:04
    #33931323
AndreyMp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что потенциально быстрее.
авторДля этого придеться пол класса каждый раз переписывать (под 500 строк мин)А ты хочешь что бы это кто то зделал за тебя?
...
Рейтинг: 0 / 0
21.08.2006, 11:03
    #33931580
Aklin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что потенциально быстрее.
Я српашиваю: что потенциально быстрее.
Дело еще вот в чем:
если брать массив (8-мерный) то прога теоретически должна прагать по памяти дох. долго, а если брать рассчет (в-3) то вычислений дох.

В моей реализации не смог прижится ни 2 ни 3 вариант.
Пришлось брать 1-й
...
Рейтинг: 0 / 0
29.08.2006, 15:29
    #33950017
Worobjoff
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что потенциально быстрее.
К сожалению поздний ответ: давно не заглядывал сюда.
В VB6 многомерный массив будет быстрее из-за операторов умножения в вычислении адреса для одномерного массива.
В VB6 нет команды сдвига. Если бы она была - одномерный массив отработал бы быстрее.
Проверено: В делфи обращение подобное этому:
AAA(am4 shl 16 + am3 shl 12...
работает быстрее.
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Что потенциально быстрее. / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]