|
Нехватки памяти, алкогольные декларации и все-все-все. | ☑ | ||
---|---|---|---|---|
0
H A D G E H O G s
11.10.12
✎
21:59
|
Нашел забавный баг, который выносит нехило память (ориентировочно он), в табличном документе.
По непонятной причине в макет (да и в mxl) дописывается совершенно абсурдный кусок типа {#base64:77u/MiwxLDM4MWVkNjI0LTkyMTctNGU2My04NWRiLWM0YzNjYjg3ZGFhZSwNCnsN Cns5LA0KeyJQYXR0ZXJuIiwNCnsiRCIsIkQifQ0KfSwNCnsNCnsNCnsxMCwxLA0K ezMsNCwNCnswfQ0KfSwNCnszLDQsDQp7MH0NCn0sDQp7NiwzLDAsMX0sMCwNCnsz LDMsDQp7LTIyfQ0KfSwNCnszLDQsDQp7MH0NCn0sDQp7Myw0LA0KezB9DQp9LA0K ezMsMywNCnstN30NCn0sDQp7MywzLA0Key0yMX0NCn0sDQp7MywxLA0Key0xOH0s MCwwLDB9LA0KezEsMH0NCn0sMjEsMCwwLDAsMCwwLDEsMCwwLDAsMSwwLDAsMCww LDAsNCwwLA0KeyJVIn0sDQp7IlUifSwiIiwyLDEsMCwwLDAsMCwNCnszLDAsDQp7 MH0sIiIsLTEsLTEsMSwwfSwNCnszLDAsDQp7MH0sIiIsLTEsLTEsMSwwfSwwLDAs MCwNCnswLDAsMH0sDQp7MSwwfSwwLDAsMCwwfQ0KfSwNCnsxLA0KezlhNzY0M2Qy LTE5ZTktNDVlMi04ODkzLTI4MGJjOTE5NWE5NywNCns0LA0KeyJVIn0sDQp7IlUi fSwwLCIiLDAsMH0NCn0NCn0sDQp7MH0sMCwxLDAsDQp7MSwwfSwwfQ0KfSww} Причем в соседнее идентичное поле - ничего не дописывается. Лечиться полной очисткой поля и переоформлением его в макете. Такие дела. |
|||
1
H A D G E H O G s
11.10.12
✎
22:01
|
И так у меня в 3- х полях, что приводит к тому, что 100000-строчный таб док. отжирает 2 гига оперативки и весит на винте 600 метров.
|
|||
2
H A D G E H O G s
11.10.12
✎
22:01
|
Счаст конвертну эту base64, вдруг там че годное
|
|||
3
H A D G E H O G s
11.10.12
✎
22:02
|
Будте осторожны, когда оформляете макеты, не копируйте ячейки откуда попало
|
|||
4
H A D G E H O G s
11.10.12
✎
22:04
|
Ничего интересного там не оказалось, вот такая ботва, такое ощущение, что вложенная ячейка
?2,1,381ed624-9217-4e63-85db-c4c3cb87daae, { {9, {"Pattern", {"D","D"} }, { { {10,1, {3,4, {0} }, {3,4, {0} }, {6,3,0,1},0, {3,3, {-22} }, {3,4, {0} }, {3,4, {0} }, {3,3, {-7} }, {3,3, {-21} }, {3,1, {-18},0,0,0}, {1,0} },21,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,4,0, {"U"}, {"U"},"",2,1,0,0,0,0, {3,0, {0},"",-1,-1,1,0}, {3,0, {0},"",-1,-1,1,0},0,0,0, {0,0,0}, {1,0},0,0,0,0} }, {1, {9a7643d2-19e9-45e2-8893-280bc9195a97, {4, {"U"}, {"U"},0,"",0,0} } }, {0},0,1,0, {1,0},0} },0 |
|||
5
H A D G E H O G s
11.10.12
✎
22:04
|
Поискать
381ed624-9217-4e63-85db-c4c3cb87daae 9a7643d2-19e9-45e2-8893-280bc9195a97 в базе, али ну его? |
|||
6
Fragster
гуру
11.10.12
✎
22:06
|
381ed624-9217-4e63-85db-c4c3cb87daae 'nj xnj pf nbg&
|
|||
7
Fragster
гуру
11.10.12
✎
22:06
|
это что за типа?
|
|||
8
H A D G E H O G s
11.10.12
✎
22:06
|
(7) Это GUID
|
|||
9
H A D G E H O G s
11.10.12
✎
22:06
|
(7) Откуда я знаю?
|
|||
10
H A D G E H O G s
11.10.12
✎
22:06
|
Могу образчик mxl сбросить
|
|||
11
Fragster
гуру
11.10.12
✎
22:10
|
(8) сделай ЗначениеВСтрокуВнутр и покури. Или ЗначениеИзСтрокиВнутр с этой шляпой
|
|||
12
Бубр
11.10.12
✎
22:10
|
гуид данных которые используешь или откуда то взявшийся?
|
|||
13
Fragster
гуру
11.10.12
✎
22:10
|
(10) ну скинь, тока я счас смотреть не буду, если только завтра
|
|||
14
H A D G E H O G s
11.10.12
✎
22:12
|
Все, отбой, это не данные, это же из макета, а не из таб дока строка
|
|||
15
Fragster
гуру
11.10.12
✎
22:12
|
просто типы тоже гуидами кодируются, например вот интересно: http://infostart.ru/public/71130/#Pro_bystrye_massivy
я так делал из массива ТЗ и обратно - вполне моментально получается |
|||
16
H A D G E H O G s
11.10.12
✎
22:14
|
Простите за Вебфайл конечно, но искать другое лениво
http://webfile.ru/6160182 |
|||
17
H A D G E H O G s
11.10.12
✎
22:16
|
Я дятелъ, короче.
Вместо того, чтобы макет поправить, исвращался с выносами на сервер, Временными хранилищами, и.т.д.. А ведь хотел глянуть, но не верил и некогда было. Некогда думать, надо пилить. Не всегда срабатывает |
|||
18
Fragster
гуру
11.10.12
✎
22:23
|
это не может быть настройкой границ и форматов всяких?
|
|||
19
H A D G E H O G s
11.10.12
✎
22:49
|
нет
|
|||
20
H A D G E H O G s
19.10.12
✎
15:52
|
Подниму тему.
Непонятное продолжается. |
|||
21
H A D G E H O G s
19.10.12
✎
15:54
|
Долгие хитрые манипуляции с временными хранилищами, таб. доками, деревьями значений, и вуаля - у нас есть 1С -ка, занимающая 600 метров оперативы и txt файл на 12 метров.
Жалкие. 12 метров. И хоппа, при попытке его прочитать, 1С падает с нехваткой памяти. |
|||
22
H A D G E H O G s
19.10.12
✎
15:54
|
Причем, если прочитывать на пустой 1С-ине - все нормально.
|
|||
23
H A D G E H O G s
19.10.12
✎
15:55
|
Это если ЧтениеТекста, а если:
ТекстовыйДокумент=Новый ТекстовыйДокумент; ТекстовыйДокумент.Прочитать("b:\tmp.txt"); //отжирает 30 метров ОЗУ ТекстДляЗаписи=ТекстовыйДокумент.ПолучитьТекст(); //Падает ТекстовыйДокумент=Неопределено; |
|||
24
H A D G E H O G s
19.10.12
✎
15:56
|
Я думаю, что после диких операций с объектами - память фрагментирована и чисто некуда аллокейтить 24 мегабайта ОЗУ непрерывным блоком, не?
|
|||
25
H A D G E H O G s
19.10.12
✎
15:57
|
Но почему
ТекстовыйДокумент.Прочитать("b:\tmp.txt"); //отжирает 30 метров ОЗУ нормально? |
|||
26
H A D G E H O G s
19.10.12
✎
15:58
|
Щас попробую паузу запилить, вдруг в 1С все же сборщик мусора юзается, есть у меня такое подозрение.
|
|||
27
H A D G E H O G s
19.10.12
✎
16:00
|
Пичаль. Столько мест обошел и завалиться буквально на самом конце, на простейшем.
|
|||
28
Fragster
гуру
19.10.12
✎
16:24
|
ха
|
|||
29
Fragster
гуру
19.10.12
✎
16:25
|
На какой итерации упадет?
Ф = "ф"; Для Сч = 1 по 100 Цикл Сообщить(Сч); Ф = Ф + Ф; КонецЦикла; |
|||
30
Fragster
гуру
19.10.12
✎
16:25
|
со строками у 1с все фигово
|
|||
31
Fragster
гуру
19.10.12
✎
16:27
|
(26) сборщик мусора вроде как только при возвращении в интерактивный режим вызывается. перенеси продолжение в обновление отображения (как извращенный вариант).
|
|||
32
Fragster
гуру
19.10.12
✎
16:28
|
кстати, текстовый документ больше для интерактивной работы и всяких текстовых макетов нужен, если надо много читать/писать - лучше чтение/записьТекста
|
|||
33
Fragster
гуру
19.10.12
✎
16:30
|
причем чтениеТекст.ПрочитатьСтроку() а не Прочитать(). ну и постепенная обработка.
|
|||
34
Fragster
гуру
19.10.12
✎
16:30
|
типизированная ТЗ занимает намного меньше места, чем строки
|
|||
35
Fragster
гуру
19.10.12
✎
16:32
|
кстати, наверное там память просто сильно фрагментируется
|
|||
36
Axel2009
19.10.12
✎
16:37
|
(29) 2^100 - порядка 1152921504606846976 ТБ... что значит у 1с не все в порядке со строками???
|
|||
37
Fragster
гуру
19.10.12
✎
16:40
|
(26) у меня падает на 27-й итерации, длина строки 67 108 864, памяти у процесса может быть аж до 2 гб, ЕМНИП
|
|||
38
Axel2009
19.10.12
✎
16:40
|
(1) я хз что у тебя с табличным полем, но писал обработину для декларации (скока строк не считал, но оптовая на регион), там проблем таких не было... о_О
|
|||
39
H A D G E H O G s
19.10.12
✎
16:40
|
Попробую тупо зааллокэйтить 12 метровую строку.
|
|||
40
Fragster
гуру
19.10.12
✎
16:41
|
(37) к (36)
|
|||
41
H A D G E H O G s
19.10.12
✎
16:41
|
Вывел Предупреждение () на 3 секунды - та же хрень.
|
|||
42
Fragster
гуру
19.10.12
✎
16:42
|
(39) реально, через чтениетекста фигачь в ТЗ. у меня так ТЗ с >1м строк (где-то по 60 байт по сумме полей) загрузилась нормально
|
|||
43
Axel2009
19.10.12
✎
16:42
|
(37) а тебе реально нужно было 37 метров строки анализировать? О_О
|
|||
44
Fragster
гуру
19.10.12
✎
16:42
|
или тебе прям 1 кусок нужен?
|
|||
45
Fragster
гуру
19.10.12
✎
16:43
|
(43) это тест такой
|
|||
46
Axel2009
19.10.12
✎
16:45
|
(41) прочитать строку ниразу не вылетало у меня
|
|||
47
Axel2009
19.10.12
✎
16:45
|
(23) ну если считать что 12 метров текста, в формате юникод - 2 байта на каждый символ, то 30 метров оперативы уже гдето близко. потому как там еще промежуточные наверняка переменные хранятся..
|
|||
48
Fragster
гуру
19.10.12
✎
16:50
|
(46) да, падает если Прочитать()
|
|||
49
H A D G E H O G s
19.10.12
✎
16:51
|
Надо его запихать в
Документ.ВыгрузкаРегламентированныхОтчетов |
|||
50
H A D G E H O G s
19.10.12
✎
16:53
|
Самое забавное, что при запихивании в типовой текстовый реквизит приходит падение при записи дока, поэтому там особый, ХранилищеЗначения реквизит с максимумом сжатия.
|
|||
51
Fragster
гуру
19.10.12
✎
17:01
|
если только хранить, то Новый ДвоичныеДанные(<Имя файла>) и в хранилище...
|
|||
52
Fragster
гуру
19.10.12
✎
17:02
|
все-таки пятница
|
|||
53
H A D G E H O G s
19.10.12
✎
17:04
|
(51) Тяжко корежить типовые механизмы.
|
|||
54
H A D G E H O G s
19.10.12
✎
17:05
|
Итак уже отдельный модуль на печать отчетности на сервере запилен.
|
|||
55
H A D G E H O G s
19.10.12
✎
17:05
|
Счаст попробую кусками по 1000 символов читать и приращать переменную
|
|||
56
Fragster
гуру
19.10.12
✎
17:08
|
(55) не взлетит
|
|||
57
Fragster
гуру
19.10.12
✎
17:08
|
максимум что - точнее определишь момент падения
|
|||
58
H A D G E H O G s
19.10.12
✎
17:11
|
Логика мне говорит, что не взлетит, но я и в (0) не верил!
|
|||
59
H A D G E H O G s
19.10.12
✎
17:39
|
Тех же щей.
Ну его к херам, этот черный гроб, сделаю через Двоичные |
|||
60
H A D G E H O G s
19.10.12
✎
18:06
|
Йессс!
Отс^%&&си, гребанный диспетчер памяти! |
|||
61
Fragster
гуру
19.10.12
✎
18:07
|
(60) чо?
|
|||
62
H A D G E H O G s
19.10.12
✎
18:08
|
(61) Чо, чо.. Забил я на строку, сделал через Двоичные, все отрабатывает.
|
|||
63
Fragster
гуру
19.10.12
✎
18:09
|
(62) а, ну ясен фиг. туда и гигабайты вроде как засовываются...
|
|||
64
Fragster
гуру
19.10.12
✎
18:09
|
я думал со строкой обманул
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |