powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / "...As Byte" или "...As Long" ?
7 сообщений из 7, страница 1 из 1
"...As Byte" или "...As Long" ?
    #32200158
Фотография Нуф-нуф
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сижу, я значит, жую и потихонька код просматриваю с целью оптимизации онного. Просматриваю и тут же натыкаюсь... в смысле замечаю что у меня практически отсутствуют переменные типа Byte и Integer! Млин... "А чё за фигня?" - спрашиваю я себя и тут же получаю ответ: "Дых, система то 32-разрядная..."
В смысле где-то читал (да и сам кажись тестировал), что быстрее всего в 32-разрядной системе будут выполняться операции, соответственно, с 32-разрядными же значениями; байтовые и Integer переменные хранятся в памяти как 32-разрядное слово (хавают ресурсов оперативки так же, как и длинное целое), поэтому вместо байтовых и целых лучше (?) использовать длинные целые...
Вот стал я их использовать, и что? Смотрю я на строку в коде:
Код: plaintext
Private mlngTableRowsQuantity As Long  'количество видимых строк таблицы
и офигеваю: Неужели кол-во одновременно видимых строк на экране когда-нить сможет перевалить за 256?!

Вообщем, код становится как бы менее логичным... Задумался над этим, и пока у форумян сохраняется настроение потеоретизировать (соседний топик), решил спросить: Чем жертвовать? Глупой оптимизацией под 32-разрядную систему или Глупой нелогичностью кода (код читается отлично, если не задумываться вопросом: "А нафик такая разрядность?"...

Кто что думает? А?
...
Рейтинг: 0 / 0
"...As Byte" или "...As Long" ?
    #32200159
Фотография Нуф-нуф
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Конечно следут еще учесть и возможность своевременного обнаружения ошибок, если код некорректен (в туже переменную о количесве строк, но с байтовой величиной, если загнать 1000, то возникнет переполнение и все вылезет наружу), но... Вопрос задан...
...
Рейтинг: 0 / 0
"...As Byte" или "...As Long" ?
    #32200186
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Не претендую на полный ответ, хочу только добавить одно соображение. Тот факт, что Byte все равно хранится как Long, - это факт с ограниченной ответственностью. Это может измениться в следующих версиях Аксесса или Windows. Так что с этим фактом можно не считаться.

С другой стороны, может ли количество строк на экране вылезть за 256 - да, может, потому что высота строки может регулироваться и глупый юзер может сделать ее равной 1, и вот в этой ситуации умный Майкрософт позаботился, чтобы система не накрылась. Вывод: при выборе типа надо брать запас на идиотские ситуации, которые возможны хотя бы теоретически.
...
Рейтинг: 0 / 0
"...As Byte" или "...As Long" ?
    #32200206
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На потерю производительности можно положить. Достаточно один раз сравнить время приведения Byte к Long с временем выполнения, скажем, Recordset.MoveNext. Сложные расчетные задачи я не рассмтриваю, VB для них не предназначен.
Если заранее и гарантировано известно, что область значений лежит в диапазоне 0-256 (или -32768 - +32768) то вполне нормально использовать Byte (Integer). Более понятный код будет.
Но только где ж такое бывает? Чтоб заранее и гарантированно? У меня вон какой-то программист количество товара сделал Integer. Ну правильно вроде бы, никто же не будет выписывать в счете 16 миллионов коробок чего-либо. И работало оно, пока не стали выписывать по 50000 погонных дециметров :). Тут то Integer и сдох.
Так что поддерживаю Саныча:
при выборе типа надо брать запас на идиотские ситуации, которые возможны хотя бы теоретически.
...
Рейтинг: 0 / 0
"...As Byte" или "...As Long" ?
    #32200221
Фотография Нуф-нуф
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пнятна...
//Сделал вывод: можно пользоваться Byte, но лучше оставлять запас, т.е. работать с Long :)
//Вообщем-то, хотел услышать реакцию на моё: "что у меня практически отсутствуют переменные типа Byte и Integer!". В смысле, не очень ли это плохо и не профессионально... По реакции понял, что ничё страшшного в етом нет.
Псиб.
...
Рейтинг: 0 / 0
"...As Byte" или "...As Long" ?
    #32200240
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
А ведь и правда, не ответили мы на вопрос. Но нас поняли правильно...
...
Рейтинг: 0 / 0
"...As Byte" или "...As Long" ?
    #32200246
Фотография Нуф-нуф
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да ладно... Я уже привыкать стал, что меня с ответами динамят ;)
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / "...As Byte" или "...As Long" ?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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