Powered by Invision Power Board



Страницы: (2) 1 [2]  ( Перейти к первому непрочитанному сообщению ) Ответ в темуСоздание новой темыСоздание опроса

> FTPInfo 1.9.0 & ScanDepth
MAS
Дата 23.01.2006 - 16:18
Цитировать сообщение




Старик
***

Профиль
Группа: Автор
Сообщений: 1228
Пользователь №: 2
Регистрация: 21.06.2005





QUOTE (Oleg @ Jan 20 2006, 18:03)
А разве Вы не добавляете просто новую переменную-член в класс, например, управляющего опросами или режимами опросов, для новой опции и добавляете ссылки на нее в функциях загрузки (в зависимости от версии файла) и сохранения в файл? Или Вы сразу выделили некоторый объем памяти под настройки и потом, по мере надобности занимаете нужные биты? Чего-то я не очень понял.  sad.gif

Для числовых и строчных переменных "выделяется место", точнее объявляется переменная в классе настроек сервера.
А вот булевые переменные (пассивные режим, MODE Z, SSL, ....) "упаковываются" в одну UINT переменную. Ну не в одну, в несколько (по категориям). Так вот - свободные битики в этих "флаговых переменных" ещё остались.
PMСайт пользователяICQ
Top
Oleg
Дата 23.01.2006 - 20:15
Цитировать сообщение




Старик
***

Профиль
Группа: Members
Сообщений: 173
Пользователь №: 70
Регистрация: 20.01.2006





QUOTE
А вот булевые переменные (пассивные режим, MODE Z, SSL, ....) "упаковываются" в одну UINT переменную. Ну не в одну, в несколько (по категориям).

А почему именно таким образом организовано, если не секрет, конечно? wink.gif (спрашиваю чисто из любопытства и стремления узнавать новое rolleyes.gif ).
Просто однажды может наступить момент, когда даже в UINT-переменной не хватит битов, и придется делать еще одну переменную той же категории или менять ее тип на больший.
PMПисьмо на e-mail пользователю
Top
MAS
Дата 24.01.2006 - 12:48
Цитировать сообщение




Старик
***

Профиль
Группа: Автор
Сообщений: 1228
Пользователь №: 2
Регистрация: 21.06.2005





QUOTE (Oleg @ Jan 23 2006, 20:15)
QUOTE
А вот булевые переменные (пассивные режим, MODE Z, SSL, ....) "упаковываются" в одну UINT переменную. Ну не в одну, в несколько (по категориям).

А почему именно таким образом организовано, если не секрет, конечно? wink.gif (спрашиваю чисто из любопытства и стремления узнавать новое rolleyes.gif ).

Спектрумовская привычка экономить память. Так бы пришлось использовать на каждый флаг BOOL переменную, которая есть UINT, но принимает лишь значение 0 или 1.
Плюс BOOL переменную "неопределенное состояние" ("серые галки" при групповой настройке серверов).
А так: в одну UINT влезает 16 флагов и 16 "неопределённых" этих же флагов.
И всего 4 байта занимает. А если в BOOL: 4 * 16 * 2 = 128 байт. 128 или 4 - есть разница? smile.gif А если серверов под 1000 => 4Кб или 128Кб.
Хотя.... Если в мире ПЦ не принято экономить память и оптимизировать всё что можно - тока скажите, я тут же развернусь biggrin.gif

QUOTE
Просто однажды может наступить момент, когда даже в UINT-переменной не хватит битов, и придется делать еще одну переменную той же категории или менять ее тип на больший.

Ну переведу из 32-х битнрой в 64-х битную или добавлю новую переменную - и что из этого?
Опять же: я добавляю 4 байта, а получаю в итоге 16 битовых переменных.
PMСайт пользователяICQ
Top
Oleg
Дата 24.01.2006 - 15:18
Цитировать сообщение




Старик
***

Профиль
Группа: Members
Сообщений: 173
Пользователь №: 70
Регистрация: 20.01.2006





QUOTE
А так: в одну UINT влезает 16 флагов и 16 "неопределённых" этих же флагов.  И всего 4 байта занимает. А если в BOOL: 4 * 16 * 2 = 128 байт. 128 или 4 - есть разница?  А если серверов под 1000 => 4Кб или 128Кб

Разумно! Надо будет иметь ввиду. smile.gif
PMПисьмо на e-mail пользователю
Top
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темыСтраницы: (2) 1 [2]  Ответ в темуСоздание новой темыСоздание опроса

 



[ Время генерации скрипта: 0.0135 ]   [ Использовано запросов: 12 ]   [ GZIP выключен ]