|
|
|
"...As Byte" или "...As Long" ?
|
|||
|---|---|---|---|
|
#18+
Сижу, я значит, жую и потихонька код просматриваю с целью оптимизации онного. Просматриваю и тут же натыкаюсь... в смысле замечаю что у меня практически отсутствуют переменные типа Byte и Integer! Млин... "А чё за фигня?" - спрашиваю я себя и тут же получаю ответ: "Дых, система то 32-разрядная..." В смысле где-то читал (да и сам кажись тестировал), что быстрее всего в 32-разрядной системе будут выполняться операции, соответственно, с 32-разрядными же значениями; байтовые и Integer переменные хранятся в памяти как 32-разрядное слово (хавают ресурсов оперативки так же, как и длинное целое), поэтому вместо байтовых и целых лучше (?) использовать длинные целые... Вот стал я их использовать, и что? Смотрю я на строку в коде: Код: plaintext Вообщем, код становится как бы менее логичным... Задумался над этим, и пока у форумян сохраняется настроение потеоретизировать (соседний топик), решил спросить: Чем жертвовать? Глупой оптимизацией под 32-разрядную систему или Глупой нелогичностью кода (код читается отлично, если не задумываться вопросом: "А нафик такая разрядность?"... Кто что думает? А? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2003, 13:20 |
|
||
|
"...As Byte" или "...As Long" ?
|
|||
|---|---|---|---|
|
#18+
Конечно следут еще учесть и возможность своевременного обнаружения ошибок, если код некорректен (в туже переменную о количесве строк, но с байтовой величиной, если загнать 1000, то возникнет переполнение и все вылезет наружу), но... Вопрос задан... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2003, 13:26 |
|
||
|
"...As Byte" или "...As Long" ?
|
|||
|---|---|---|---|
|
#18+
Не претендую на полный ответ, хочу только добавить одно соображение. Тот факт, что Byte все равно хранится как Long, - это факт с ограниченной ответственностью. Это может измениться в следующих версиях Аксесса или Windows. Так что с этим фактом можно не считаться. С другой стороны, может ли количество строк на экране вылезть за 256 - да, может, потому что высота строки может регулироваться и глупый юзер может сделать ее равной 1, и вот в этой ситуации умный Майкрософт позаботился, чтобы система не накрылась. Вывод: при выборе типа надо брать запас на идиотские ситуации, которые возможны хотя бы теоретически. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2003, 15:13 |
|
||
|
"...As Byte" или "...As Long" ?
|
|||
|---|---|---|---|
|
#18+
На потерю производительности можно положить. Достаточно один раз сравнить время приведения Byte к Long с временем выполнения, скажем, Recordset.MoveNext. Сложные расчетные задачи я не рассмтриваю, VB для них не предназначен. Если заранее и гарантировано известно, что область значений лежит в диапазоне 0-256 (или -32768 - +32768) то вполне нормально использовать Byte (Integer). Более понятный код будет. Но только где ж такое бывает? Чтоб заранее и гарантированно? У меня вон какой-то программист количество товара сделал Integer. Ну правильно вроде бы, никто же не будет выписывать в счете 16 миллионов коробок чего-либо. И работало оно, пока не стали выписывать по 50000 погонных дециметров :). Тут то Integer и сдох. Так что поддерживаю Саныча: при выборе типа надо брать запас на идиотские ситуации, которые возможны хотя бы теоретически. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2003, 17:30 |
|
||
|
"...As Byte" или "...As Long" ?
|
|||
|---|---|---|---|
|
#18+
Пнятна... //Сделал вывод: можно пользоваться Byte, но лучше оставлять запас, т.е. работать с Long :) //Вообщем-то, хотел услышать реакцию на моё: "что у меня практически отсутствуют переменные типа Byte и Integer!". В смысле, не очень ли это плохо и не профессионально... По реакции понял, что ничё страшшного в етом нет. Псиб. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2003, 18:36 |
|
||
|
"...As Byte" или "...As Long" ?
|
|||
|---|---|---|---|
|
#18+
А ведь и правда, не ответили мы на вопрос. Но нас поняли правильно... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2003, 19:28 |
|
||
|
|

start [/forum/topic.php?fid=45&msg=32200186&tid=1680713]: |
0ms |
get settings: |
7ms |
get forum list: |
13ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
65ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
44ms |
get tp. blocked users: |
1ms |
| others: | 187ms |
| total: | 330ms |

| 0 / 0 |
