|
Сколько занимает памяти пустая строка? | ☑ | ||
---|---|---|---|---|
0
napagokc
04.07.12
✎
09:38
|
Возникла необходимость добавить реквизит в самый большой справочник - справочник Партий товаров. В реквизите должна быть фиксированная инфа, типа, "Брак", "Бывшее в употреблении", "Образец" и т.п.
Как оптимальнее сделать реквизит: строковым с неопределенной длинной, или числовым и использовать таблицу соответствия? Мне так кажется, что даже пустая строка должна занимать минимум 4 байта - типа, пустой указатель. Не? Да, и еще сразу вопрос: в 1С юникодовые символы или нет? То есть, по одному байту занимают или по два? Я где-то читал давно, что юникодовые, но могу ошибаться. Может это тоже было лишь предположение, а у меня отложилось в памяти, как истина... |
|||
1
napagokc
04.07.12
✎
09:44
|
народ не проснулся еще, что ли? Как-то крайне сомнительно, что никто не знает таких вещей... По-любому ведь каждый второй знает, но молчит :(
|
|||
2
Aleksey
04.07.12
✎
09:46
|
Сделай и посмотри таблицу на скуле
|
|||
3
H A D G E H O G s
04.07.12
✎
09:47
|
||||
4
H A D G E H O G s
04.07.12
✎
09:48
|
справочник Партий товаров
Это че у тебя за дедовские поделки? |
|||
5
H A D G E H O G s
04.07.12
✎
09:48
|
Времен 7.7
|
|||
6
х86
04.07.12
✎
09:49
|
(0)ПЕРЕЧИСЛЕНИЕ !!!
|
|||
7
napagokc
04.07.12
✎
09:50
|
(3) не понял к чему ссылку кинул.
(4) У нас собственная конфа, которая изначально разрабатывалась на 1С7.х, позже, с доработками была перенесена на 8.0, потом на 8.2 |
|||
8
napagokc
04.07.12
✎
09:51
|
(6) В этом поле может быть сразу несколько значений. Например, и брак и б/у
|
|||
9
H A D G E H O G s
04.07.12
✎
09:51
|
(7) Ну почитаю, сколько там байт на символ.
|
|||
10
napagokc
04.07.12
✎
09:51
|
+(8) А может не быть ни одного :)
|
|||
11
H A D G E H O G s
04.07.12
✎
09:52
|
(8) Значение перечисления - брак и бу.
|
|||
12
H A D G E H O G s
04.07.12
✎
09:54
|
(10) Значение перечисления - пусто.
|
|||
13
napagokc
04.07.12
✎
09:56
|
(9) Так в 1С UTF-8? Меня этот вопрос интересует, а не что такое UTF-8 - это мне объяснять не надо =)
(11) Идею с перечислением на заметку взял, но пока мне кажется, что этот вариант не подойдет. А чем вообще перечисление выиграет у предложенных выше вариантов? Суть ведь то же соответствие, не? |
|||
14
H A D G E H O G s
04.07.12
✎
09:58
|
(13) Минимизация секса у последующих программистов. И проклятий на твою голову.
|
|||
15
napagokc
04.07.12
✎
09:59
|
(14) Предполагалось сделать стандартную обработку в общий модуль, где подставлять соответствие. ИМХО, это не должно вызвать затруднения у последующих программистов.
|
|||
16
H A D G E H O G s
04.07.12
✎
10:03
|
Строка неограниченной длины - это ntext
ntext Данные переменной длины в Юникоде с максимальной длиной строки 2^30 - 1 (1 073 741 823) байт. Размер памяти в байтах вдвое превышает длину введенной строки. Синонимом по стандарту ISO для типа ntext является national text. |
|||
17
H A D G E H O G s
04.07.12
✎
10:05
|
Datalenght() для текста
тестtest выдал мне значение 8. Все верно. |
|||
18
H A D G E H O G s
04.07.12
✎
10:05
|
Пардон, 16.
|
|||
19
napagokc
04.07.12
✎
10:05
|
(16) Отлично! Спасибо! А можно ссылку откуда инфа?
|
|||
20
H A D G E H O G s
04.07.12
✎
10:06
|
||||
21
H A D G E H O G s
04.07.12
✎
10:06
|
||||
22
napagokc
04.07.12
✎
10:08
|
(21) Хотел привести ссылку, как доказательство своим коллегам, но не увидел связи с 1С...
|
|||
23
Ненавижу 1С
гуру
04.07.12
✎
10:08
|
будь мужиком, вычисли размер NULL
|
|||
24
H A D G E H O G s
04.07.12
✎
10:09
|
(22) Посмотри табличку SQL
|
|||
25
napagokc
04.07.12
✎
10:09
|
(23) :D По логике вещей должен быть 4 байта
|
|||
26
H A D G E H O G s
модератор
04.07.12
✎
10:09
|
(23) Изыди, не то прокляну.
|
|||
27
Ненавижу 1С
гуру
04.07.12
✎
10:09
|
(26) чей то ты сразу пижаму надел? я же не про Неопределено ))
|
|||
28
napagokc
04.07.12
✎
10:12
|
||||
29
napagokc
04.07.12
✎
10:13
|
+ (28) это я нашел про то, что в 1С символы в юникоде хранятся
|
|||
30
kosts
04.07.12
✎
10:13
|
(0) Если нужно максимально меньшего размера, я бы число сделал.
1 - "Брак", 2 - "Бывшее в употреблении", 3 - "Образец". Запрограммировать легко (можно даже использовать другой справочник). Перечисление скорее всего будет много места занимать: тип + ссылка. |
|||
31
Ненавижу 1С
гуру
04.07.12
✎
10:16
|
(30) просто ссылка, зато ограничение на вводимое значение
|
|||
32
napagokc
04.07.12
✎
10:16
|
(30) Я вот тоже за числовое представление. Если даже будет "брак" и "образец", например, то будет число "13", где каждый символ нужно будет рассматривать по отдельности и подставлять соответствие. Только для отчетов это слишком геморно будет.
Но такое решение мне подсказывает мой опыт в обычном программировании, а коллеги, программировавшие только на 1С, не соглашаются со мной. Пытаюсь найти либо свою правоту, либо свою не правоту... |
|||
33
napagokc
04.07.12
✎
10:19
|
(31) Значения итак будут ограничены. Это поле нельзя будет менять. Только мы, разработчики, будем иметь к нему доступ. Реализация этого пока обсуждается.
|
|||
34
Sammo
04.07.12
✎
10:20
|
(30) А потом кто-то вводит необрабатываемое значение и все имеют длительные противоестветсвнные отношения.
И запрос будет выглядеть забавно Где Реквизит = 1 // брак (32) Принципы корректно применимые в классических среднеуровневых языках не вполне удачно переносить в 1с. |
|||
35
Ненавижу 1С
гуру
04.07.12
✎
10:21
|
(33) а потом расширите, но всем разработчикам об этом забудете сказать
|
|||
36
napagokc
04.07.12
✎
10:21
|
(34) Знаю. Поэтому и обратился сюда. Прекрасно понимаю, что могу ошибаться.
|
|||
37
napagokc
04.07.12
✎
10:21
|
(35) Мы и есть все разработчики :D
|
|||
38
kosts
04.07.12
✎
10:25
|
(34) (35) Разработка не сложнее чем с обычным перечислением.
|
|||
39
Ненавижу 1С
гуру
04.07.12
✎
10:27
|
(38) пясец
|
|||
40
hhhh
04.07.12
✎
10:28
|
(36) охота вам ломать голову над всякой фигней? Это же не регистр, а справочник. Какая принципиальная разница, сколько там байт?
|
|||
41
Flyd-s
04.07.12
✎
10:31
|
SQL разве будет намного сильнее тормозить от того 5 или 25 байт в строке?
|
|||
42
H A D G E H O G s
04.07.12
✎
10:31
|
a:=1;
b:=1; c:=0; res:=a*3+b*2+c*1; |
|||
43
napagokc
04.07.12
✎
10:32
|
(40) Большой очень справочник. Я боюсь, что если мы увеличим его поле, скажем, на 100 байт, то это скажется на производительности работы с ним. Может ошибаюсь.
|
|||
44
H A D G E H O G s
04.07.12
✎
10:32
|
А - брак
Б - б/у C - образец Для брака и Б/у записываем число 5 |
|||
45
hhhh
04.07.12
✎
10:35
|
(43) производительность зависит от индексов, а не от размеров полей. Если неиндексируемое поле, можете хоть 1000 байт добавлять.
|
|||
46
Йохохо
04.07.12
✎
10:36
|
(0) ты же свой реквизит индексировать захочешь? подумай над индексом для нстроки, для числа и для перечисления
(32) расстреляй себя вчера! |
|||
47
qwerty09
04.07.12
✎
10:37
|
(43) херней маешься, ИМХО. Сколько там щас элементов в твоем большом справочнике?
|
|||
48
H A D G E H O G s
04.07.12
✎
10:39
|
Ну и восстанавливаем
a:= round(res div 3); res:= Round(res mod 3); b:=round (res div 2); res:= Round(res mod 2); c:=round (res div 1); |
|||
49
H A D G E H O G s
04.07.12
✎
10:40
|
Но вообще автор мается херней, но по сравнению с null/неопределено, это цветуечки...
Ненавижу 1С, я правильно все сложил/разложил? |
|||
50
H A D G E H O G s
04.07.12
✎
10:42
|
Че, никто уже не помнит штоле, как старший/младший байт из двухбайтового получать?
|
|||
51
Ненавижу 1С
гуру
04.07.12
✎
10:43
|
(49) непонятно почему
res:=a*3+b*2+c*1; а не res:=a*4+b*2+c*1; //по степеням двойки |
|||
52
H A D G E H O G s
04.07.12
✎
10:44
|
(51) Нафига? 3 варианта же..
|
|||
53
Sammo
04.07.12
✎
10:44
|
(43) Блин, тогда сделайте через РС. Это вам даст возможность вести 1 к n
49 +1 (про автора) |
|||
54
Ненавижу 1С
гуру
04.07.12
✎
10:47
|
(52) потому что 3=2+1 и 3=3 неоднозначно жеж
или я туплю, ну да и ладно )) |
|||
55
Ненавижу 1С
гуру
04.07.12
✎
10:48
|
(52) ну и по байтам более православно
|
|||
56
Йохохо
04.07.12
✎
10:51
|
(49) можно убрать округление после взятия модуля, это съэекономит несколько тактов, ведь 1с однопоточное приложение. для экономии памяти можно а б ц в одну переменную засунуть д = а + б*16 + в*256. цифры прописать в тз, все равно никто, них кроме разработчиков, править не будет
|
|||
57
H A D G E H O G s
04.07.12
✎
10:54
|
(54) Дааа, ты чертовски прав.
|
|||
58
H A D G E H O G s
04.07.12
✎
10:54
|
(56) Это чтобы синтаксис контроль Дельфи не ругался.
|
|||
59
napagokc
04.07.12
✎
10:55
|
(56) Так и предполагается - в одну переменную. Я писал об этом выше
|
|||
60
napagokc
04.07.12
✎
10:58
|
но, по ходу, большинством голосов (2 против 1), было решено делать строковое поле.
Херней - не херней я страдаю, а вопрос оптимизации меня всегда волновал. Еще когда обычное ПО делал, мне частенько говорили, что не надо экономить на спичках. Но это мой бзик, видимо. Мои тараканы... |
|||
61
Йохохо
04.07.12
✎
11:00
|
(59) выборку по твоей самоделке движок будет делать курсором, по всему твоему регистру. если вариант "135" то на клиенте, что конечно разгрузит бд, это тебе плюс
|
|||
62
qwerty09
04.07.12
✎
11:09
|
(60)
>> Но это мой бзик, видимо.
в таком случае заведи себе еще один бзик, рефакторинг называется, а то перед поиском новой работы придется сначала порчу снимать... |
|||
63
spock
04.07.12
✎
11:16
|
(0)"Бывшее в употреблении" - 21 символ = 42 байта данных, не считая накладных. Поле с ссылкой на перечисление будет всего 16 байт. Зато потенциальных граблей в будущем не будет.
|
|||
64
napagokc
04.07.12
✎
11:19
|
(63) "Бывшее в употреблении" скорее всего заменится на "БУ"
|
|||
65
Sammo
04.07.12
✎
11:24
|
(60) Скажи где это. Чтобы туда не идти...
|
|||
66
Йохохо
04.07.12
✎
11:34
|
(64) дарю идею
бРак бЫвшее в употреблении обраЗец |
|||
67
napagokc
04.07.12
✎
11:39
|
(66) Предлагаешь выделить по одной букве? Чем это существенно отличается от числового поля по наглядности? Сокращать названия будем, разумеется, но не до одной буквы. Должно быть наглядно. "Б/у" - все знают, что такое.
Но спасибо за совет =) |
|||
68
Жан Пердежон
04.07.12
✎
11:44
|
еще вариант есть РС использовать, как доп.свойства в БСП.
|
|||
69
Жан Пердежон
04.07.12
✎
11:47
|
(68) тут оптимизацией особо и не пахнет, имхо
|
|||
70
Йохохо
04.07.12
✎
11:50
|
(67) это путь стать незаменимым
|
|||
71
х86
04.07.12
✎
12:27
|
сорри не внимательно читал, вчитался
>>...справочник партий ... тогда уже не важно число это будет или строка и ХЗ что |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |