Тип данных и скорость выполнения операций

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
uk8amk
Обычный пользователь
Обычный пользователь
 
Сообщения: 67
Зарегистрирован: 26.07.2007 (Чт) 16:52
Откуда: Tashkent

Тип данных и скорость выполнения операций

Сообщение uk8amk » 23.02.2009 (Пн) 10:56

В моей программе есть критический кусок кода, который надо выполнять как можно быстрее(обработка будет в реальном времени на не очень быстром компе). Т.е. мне необходимо максимально снизить накладные расходы на время, связанные с преобразованием типов данных и т.д.
Для вычислений я использую логические порязрядные операции. На выходе формируются данные типа Byte. Однако насколько мне известно VB6 и центральный процессор используют 32-разрядную обработку данных и в связи с этим у меня возникают следующие вопросы:
1)уменьшение времени на приведение типов данных. Что будет выполняться быстрее: преобразование Integer->Byte или преобразование Long->Byte и наоборот Byte->Integer или Byte->Long?
2)уменьшение времени на доступ к данным. Какое обращение выполнится быстрее: извлечение элемента типа Byte из массива байтов или извлечение 32-разрядного элемента Long из массива типа Long?
3)уменьшение времени на поразрядные операции AND, OR, Not, целочисленное деление" \" (параллельный сдвиг вправо) и умножение (параллельный сдвиг влево). С чем быстрее будет выполняться, с Byte, Integer или Long?

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Re: Тип данных и скорость выполнения операций

Сообщение ANDLL » 23.02.2009 (Пн) 11:13

1) Преобразование из меньшего в большее(byte->integer, byte->long) работает быстрее.
2) Одинаково. Эту операцию можно оптимизировать ключом компилятора disable array bound check
3) Одинаково, если аргументы имеют одинаковый тип
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 58

    TopList