- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
private const int _multiple_cols = 0x0000060D; //0001000001101 - (Multiple view)
private const int _single_cols = 0x000007F1; //0001111110001 - (Single view)
private void SetGridColumnVisibility()
{
int bits = _view_type == NotificationContactViewType.Multiple ? _multiple_cols : _single_cols;
DataControlFieldCollection cols = gvContacts.Columns;
DataControlField col;
for (int i = 0; i < cols.Count; i++)
{
col = cols[i];
int bit = (int)Math.Pow(2, i);
col.Visible = ((bits & bit) == bit);
}
}
xXx_totalwar 05.09.2010 19:44 # 0
Stalker 05.09.2010 20:21 # 0
Nagg 06.09.2010 00:18 # +1
Stalker 06.09.2010 08:54 # −3
Анонимус 06.09.2010 02:04 # +3
меня всегда очень трогают такого рода оптимизации в приложениях на asp.net. Там, где на один заход выполняются сотни вызовов методов и в куче создаются дестяки объектов -- оптимизацию надо начинать именно с того, что бы хранить много данных в одном инте и масками потом его разглядывать.
>>Math.Pow(2, i);
афтар не проходил сдвиги.
>>Я нечто похожее делал примерно так:
а по человечески никак там? bool[] ? Неужели ASP.NET настолько топорен?
Dummy00001 06.09.2010 02:57 # 0
>а по человечески никак там? bool[] ? Неужели ASP.NET настолько топорен?
наверное можно и так. я в одном (единственном которое писал на Qt) приложении делал списками имен столбцов. потому что по тому как там народ таких огородов нагородил с дизойн патторнами подругому было ни как. и имена столбцов читались из hard-coded XMLа. говнище еще то, да и из-за размеров тех огородов на говнокод ни за что не поместиться.
самый прикол было видеть как P4 @ 3GHz под 100% загрузки валил когда юзеры у столбцов размер менял.
Stalker 06.09.2010 08:43 # −2
То есть по вашему, запись вида менее говниста? Да, с bool[] всё по правилам, но ИМХО не так удобно. Писалось на Delphi, но не суть важно.
С остальным согласен.
istem 06.09.2010 08:56 # 0
Stalker 06.09.2010 09:09 # −2
Для массива? Нет.
А товарищ Анонимус всё-таки заметил нечто другое. Перечитайте.
istem 06.09.2010 09:15 # 0
Товарища Анонимуса поддерживаю "хранить много данных в одном инте и масками потом его разглядывать."
или сдвигами
Stalker 06.09.2010 09:27 # −1
> Там, где на один заход выполняются сотни вызовов методов и в куче создаются дестяки объектов
Сарказм же.
Да, в 2 байта влезет, но с потерями читаемости кода и лёгкости модификации. ИМХО не стоит.
istem 06.09.2010 10:41 # 0
а лёгкость модификации должна присутствовать совершенно в другом месте программы.
--
и вообще, удивительно, почему стало сейчас модным НЕ использовать двоичные данные. Ведь в них можно хранить уйму информации, занимают они минимум места, и обрабатываются быстро.
(в противовес строкам, массивам ...и тп)
Анонимус 06.09.2010 13:13 # +1
Результаты Вас удивят)
istem 06.09.2010 15:08 # 0
Анонимус 06.09.2010 15:33 # 0
особенно если у вас рядом пара десятков объектов на килобайт каждый
>> и что операции обработки регистров выполняются быстрее чем операции работы с памятью
в CLR нет регистров. Это чисто стековая машина.
Как она выполнится на процессоре -- нам знать не дано
istem 06.09.2010 17:27 # 0
имелась ввиду обработка информации о настройках (типа on/off), а не информация как данные
Анонимус 06.09.2010 17:29 # +1
Вы знаете, что в дотнетах принято хранить конфиги в XML?
А XML насктолько избыточен, что смешно там что-то экономить.
А уж если в нем русские комментарии (а xml в утфе обычно) то совсем весело
istem 06.09.2010 18:07 # 0
с тех пор как кто-то придумал хранить настройки в текстовых файлах. Конечно, это очень удобно и поэтому стало популярным.
--
обработка таких настроек требует значительных ресурсов
поэтому и говорю
Stalker 08.09.2010 13:30 # −1
А "пошло-поехало" ещё раньше, с появлением высокоуровневых языков.
Анонимус 08.09.2010 14:45 # +1
хм) Это придумали в 60х. По крайней мере в 71м году, в юниксе именно так и было.
А еще на эту тему никсоиды смеются над виндузятниками.
Потому что если у вас что-то сломалось в конфигах никсов, и никсы не грузятся -- вы грузитесь с диска, прикручиваете свой винт, и делаете "vi КОНФИГ_ФАЙЛ". И все.
А еще его можно забекапить на флешку методом cp. А еще можно включить VCS, и узнать кто и что и когда поменял в конфигах системы, и даже откатиться назад.
Если у вас испортился один байт в тестовом файле -- вы поправите его руками.
Если у вас что-то сломалось в винде, то вам надо грузится с
какого-нить платоного решения типа ERD, подключать реестр, и пытаться его править.
Никакой истории реестра нет. Забекапить его практически нереально. (вернее нереально восстановить метотдом xcopy).
И если там запортился один байт -- то будет registry corrupted, и руками это не поправить.
В общем текстовые конфиги рулят.
Если ОЧЕНЬ принципиална скорость -- можно компилировать в hash db (как часто делают в никсах, сендмейле итд)
istem 08.09.2010 16:49 # 0
Системы стандартов значительно отстают от разработчиков синтаксиса этих самых конфигов.
---
Конфиги.txt были бы идеальным решением если б сочетали в себе общемировой стандарт с возможностью максимальной минимизации кода.
---
Анонимус 08.09.2010 20:40 # 0
istem 09.09.2010 09:22 # 0
name="boo";
title="boo";
index="boo";
marker="boo";
pointer="boo";
...
(ps. я не знаком с jaxb)
и разве jaxb это всё сериализует именно в getName()?
для того, чтобы другой разработчик понял о каком именно "названии" идёт речь.
"boo"=getName() в различных проектах может быть чем угодно, начиная от сообщения пользователю, до названия объекта, и тд.
Метр (например) - это стандартная величина, что такое метр все знают, и применяют это понятие именно в правильном контексте.
Любой инженер поймёт, если указано 3 метра, значит речь идёт о протяжённости чего-то.
Или если написать "Плотность=1кг/куб. дм"
ясное дело что тут имеется ввиду физическое свойство объекта - плотность.
В программировании же всё расплывчато. В программировании словом плотность можно обозвать любое свойство.
( я сейчас абстрактно выражаюсь, заместо плотности может быть что угодно )
--
через много лет после окончания учёбы до меня наконец дошло, что стандартизация и метрология не такая уж и плохая вещь
--
Цитата из Revolution OS: "...одним из многочисленных аспектов open source, является то, что в самом проекте лучше всего разбирается сам разработчик этого проекта..."
Анонимус 06.09.2010 13:12 # +1
да.
bool[] {true, false, true} менее говнисто чем String boo = "+-+".
Lure Of Chaos 05.09.2010 23:26 # 0
нуну, так и до стеганографии недалеко )
AxisPod 06.09.2010 06:36 # +2
bugmenot 06.09.2010 18:27 # +1