Имя: Пароль:
1C
1С v8
Влияет ли расстояние между строками кода на производительность?
,
0 Московский
 
27.05.16
14:26
Собственно, сабж! А то мне утверждают, что чем "утрамбованнее" код, тем быстрее он работает. А то я почти всё через строку пишу - так воспринимается легче.
1 Джинн
 
27.05.16
14:27
Еще как влияет! Особенно по пятницам.
2 Heckfy
 
27.05.16
14:28
конечно влияет. Попробуй какую нибудь процедуру в одну строку напиши. А потом сравни производительность.
3 Московский
 
27.05.16
14:29
(1) вот и я думаю... :-|
4 NorthWind
 
27.05.16
14:29
(0) канеш влияет. Сжатие данных, чо, не слышал что ли.
Надо все фигачить в одну строку!
5 Московский
 
27.05.16
14:29
(2) Попробую, конечно. Вначале мнения услышать хочется.
6 Джинн
 
27.05.16
14:30
(4) ... и без пробелов
7 aleks_default
 
27.05.16
14:31
(0)Конечно влияет, пока такую конфу откроешь, уже и работать перехочется.
8 Timon1405
 
27.05.16
14:31
мнения собираешь а голосовалку не сделал, Семен Семеныч
9 Московский
 
27.05.16
14:32
(8) ну ой!
10 oslokot
 
27.05.16
14:32
Главное, название переменных должны быть короткими как выстрел.
11 Михаил Козлов
 
27.05.16
14:32
Один чел писал, что если цикл написать в одну строку (вместе с телом), то выполняется быстрее. Проверить было лень.
12 Jokero
 
27.05.16
14:32
Компилятор, не удаляет пробелы, он сидит и думает над каждым))
13 Михаил Козлов
 
27.05.16
14:32
(11)+ Именно в 1С.
14 Heckfy
 
27.05.16
14:33
(13) Я еще в 2 писал. :)
15 Я не курил
 
27.05.16
14:33
ещё надо код по английски писать, тогда точно быстрее будет
16 Fragster
 
гуру
27.05.16
14:34
(11) это при подключенной отладки в замере. а без включенной отладки пофиг.
17 Jokero
 
27.05.16
14:34
Сабж: Помогите оптимизировать отчет, очень долго выполняется.
Ответ : Напиши отчет в одну строку!
18 Карупян
 
27.05.16
14:34
То что в 1 строку работает быстрее давно известно
19 Ranger_83
 
27.05.16
14:35
Самое главное шрифт маленький сделать!
20 Gary417
 
27.05.16
14:36
(15) +1 угу, потому что не придётся на английский переводить, процессор то американская контора разрабатывала
21 Heckfy
 
27.05.16
14:37
(20) А если я Эльбрусе кодю?
22 Gary417
 
27.05.16
14:37
(21) в 1С?
23 Heckfy
 
27.05.16
14:39
(22) Да. Ну комп у меня на базе отечественного процессора "Эльбрус".
24 Gary417
 
27.05.16
14:42
(23) ну тогда должно быстрее работать :)
*чёт я не нашёл, он умеет в x86 работать? А то на arm-е 1С не запустится
25 aleks_default
 
27.05.16
14:45
(21) Медведев, перелогинтесь...
26 vde69
 
27.05.16
14:48
в 7.7 если цикл записать в одну строчу он реально на много быстрее работает...

в снеговике - не проверял...
27 Pistol
 
27.05.16
14:49
А чо вы ржоте-то? Конечно влияет.

Пустая строка компилируется в специальный байт-код, который используется чтобы при развале с исключением в модуле, поставляемом без исходного кода, сориентироваться и выдать сообщение типа "Ошибка в строке 30".

Ну а "выполнение" это специального байт-кода отнимает у виртуальной машины 1С время. Поэтому в глубоких циклах это оказывает незначительное влияние.

Так-то!
28 Gary417
 
27.05.16
14:52
(27) помоему для этого отдельно собирают данные для отладчика с ссылками на реальный код. а в исполняемом байт-коде дропают всё лишнее.

так должнО быть. как уже накодили погромисты в платформе другой вопрос
29 Fragster
 
гуру
27.05.16
14:53
(26) в снеговике ОбработкаПрерыванияПользователя() после каждой строки автоматом вставлялась, в снеговике - нет.
30 Мыш
 
27.05.16
15:03
(29) Истина НЕ Истина )))
31 Azverin
 
27.05.16
15:04
едрить! точно! пойди рефакторинг кода делать!
32 ice777
 
27.05.16
15:05
(0) Однозначно влияет. 1с же транслятор )
видит пустую строчку, делает лишнее действие - "строку пропустить".
33 Московский
 
27.05.16
15:06
(32) Не интерпретатор? Не?
34 Fragster
 
гуру
27.05.16
18:51
(30) ну в клюшках вставлялась, в снеговике - нет...
35 Pistol
 
27.05.16
19:05
(28) "Я бы вот так сделал", понятно...
Ты еще скажи, что они недоступные участки кода вырезают, типа Если Ложь Тогда =)

Кстати это тоже для сохранения строк.
36 ice777
 
27.05.16
19:18
(33) спс за уточнение. совсем забыл про эти определения.
37 Лефмихалыч
 
27.05.16
19:45
(0) если режим отладки выключен, то ни какое форматирование кода на производительность не влияет.
38 Фрэнки
 
27.05.16
19:51
А самая большая экономия в модулях - любые тексты запросов переписать в одну строчку! И обязательно все до единого.

(это была шутка юмора)
39 xReason
 
27.05.16
20:08
(37) Все верно

В режиме Предприятия код в одну строку и многострочный код работают с одной скорость.

Это все МИФы древней Греции , запускающих тесты под отладкой
40 Torquader
 
29.05.16
00:51
(26) В семёрке при переходе со стоки на строку проверяется очередь сообщений на предмет DDE-сообщений и прерывания по нажатию клавиш - избавится от прерывания можно, если код не покидает строки.
В восьмёрке DDE нет вообще, а прерывание пользователя обрабатывается через специальную функцию, так что ничего не должно влиять.

Вопрос о моменте трансляции кода в исполняемое состояние (байт-код) мы же не рассматриваем.
41 Torquader
 
29.05.16
00:52
В режиме отладки, кстати, отсылается каждый оператор, а не каждая строка.
Основная теорема систематики: Новые системы плодят новые проблемы.