|   |   | 
| 
 | Вопрос про быстродействие платфомы | ☑ | ||
|---|---|---|---|---|
| 0
    
        fly7 13.01.12✎ 11:44 | 
        Прочитал что если в модуле минимум строк, то он быстрее компилируется и в итоге быстрее работает 1с
  как думаете имеет смысл перелопатить все модули в одну строку? | |||
| 1
    
        Wobland 13.01.12✎ 11:45 | 
        подтверждаю, проверял
  Для Цикл ... КонецЦикла работает заметно быстрее, чем Для Цикл ... КонецЦикла только тебе оно надо всё лопатить | |||
| 2
    
        Asmody 13.01.12✎ 11:45 | 
        да, обязательно! а разве у тебя по другому?     | |||
| 3
    
        Maxus43 13.01.12✎ 11:46 | 
        имхо бред. даже если есть доля правды - прирост производительности будет оченьоченьочень мал, а вот читать этот код ты уже не сможеш     | |||
| 4
    
        jsmith82 13.01.12✎ 11:46 | 
        я уже давно перелопатил всю конфу, скорость возрасла в разы, блокнот и калькулятор нервно курят в сторонке     | |||
| 5
    
        asady 13.01.12✎ 11:47 | 
        (0) сабж спорный - но направление ваших мыслей мне нравится....     | |||
| 6
    
        Fish гуру 13.01.12✎ 11:47 | 
        Главное -это "все модули в одну строку" - именно ВСЕ модули и в одну строку :)))     | |||
| 7
    
        Maxus43 13.01.12✎ 11:48 | 
        а, пятница же, ДА! всё УПП в одну строку переписал давно, летает просто     | |||
| 8
    
        Asmody 13.01.12✎ 11:49 | 
        1С специально типовые пишет с разбиением на строки, да ещё комментарии вставляет, чтобы снизить производительность. У них тайный сговор с продавцами компьютеров     | |||
| 9
    
        БалбесВ1с 13.01.12✎ 11:50 | 
        (0)Антон,где прочитал то? Дай ссылку.     | |||
| 10
    
        jsmith82 13.01.12✎ 11:50 | 
        кстати, вы черех хекс-редактор тоже убирали вставки из 1сv8.exe?     | |||
| 11
    
        DmitryPavlik 13.01.12✎ 11:50 | 
        (8) наверняка так! 
  а ещё пустые строки-разделители добавляют - якобы для облегчения понимания кода! | |||
| 12
    
        jsmith82 13.01.12✎ 11:51 | 
        (11) больше всего тормозит из-за комментов, особенно если они зелёного цвета     | |||
| 13
    
        Maxus43 13.01.12✎ 11:51 | 
        (12) подтверждаю, у меня они черного щас, быстрей пашет     | |||
| 14
    
        Asmody 13.01.12✎ 11:51 | 
        (10) я его вообще сразу удаляю. без него производительность вырастает на порядок!     | |||
| 15
    
        программистище 13.01.12✎ 11:54 | 
        это сговор 1с с производителями железа
  у них в типовых не только в одну строку, но и через каждую строку пустая строка | |||
| 16
    
        petrowsky 13.01.12✎ 11:55 | 
        (0) быстрее всего будет, если вообще от кода избавиться, я гарантирую     | |||
| 17
    
        DmitryPavlik 13.01.12✎ 11:55 | 
        (16) как раз хотел предложить этот способ
  может быт даже вообще платформу не запускать... | |||
| 18
    
        jsmith82 13.01.12✎ 11:56 | 
        или удалить вообще с компа, так наверно быстрее всего будет работать     | |||
| 19
    
        jsmith82 13.01.12✎ 11:56 | 
        как Asmody     | |||
| 20
    
        Maxus43 13.01.12✎ 11:57 | 
        быстрей будет на счетах, компьютеры и 1с от лукавого     | |||
| 21
    
        DmitryPavlik 13.01.12✎ 11:57 | 
        (18) оставить голый ДОС, как у Asmody ?     | |||
| 22
    
        Asmody 13.01.12✎ 11:57 | 
        (21) у меня вообще-то убунта     | |||
| 23
    
        fly7 13.01.12✎ 11:57 | 
        (9) это на секретном форуме разрабов платформы, вас не пустит     | |||
| 24
    
        DmitryPavlik 13.01.12✎ 11:58 | 
        (22) для нетбуков - только кде :)     | |||
| 25
    
        Asmody 13.01.12✎ 11:58 | 
        (24) у меня айпад     | |||
| 26
    
        IamAlexy 13.01.12✎ 11:58 | 
        вы главное незабудьте убрать из этой строки все лишние пробелы, комментарии и тд и тп..     | |||
| 27
    
        petrowsky 13.01.12✎ 11:58 | 
        (20) согласен, компьютеры, программы - все это маркетинговые махинации     | |||
| 28
    
        Artem_Na 13.01.12✎ 12:04 | 
        (0) Это справедливо для 1С 7.7 -- там внутренний опкод 01 (LINE) использовался для нужд отладчика/анализа производительности. Как в 1С 8.x -- не знаю.     | |||
| 29
    
        Wobland 13.01.12✎ 12:13 | 
        // вариант 1
  Старт=обMSScriptControl.eval("new Date().getTime()"); Для й=0 По 1000000 Цикл й=й; КонецЦикла; Финиш=обMSScriptControl.eval("new Date().getTime()"); Сообщить("Вариант 1: "+(Финиш-Старт)/1000+" сек."); // вариант 2 Старт=обMSScriptControl.eval("new Date().getTime()"); Для й=0 По 1000000 Цикл й=й; КонецЦикла; Финиш=обMSScriptControl.eval("new Date().getTime()"); Сообщить("Вариант 2: "+(Финиш-Старт)/1000+" сек."); ===================================== Вариант 1: 14,722 сек. Вариант 2: 1,125 сек. Вариант 1: 14,143 сек. Вариант 2: 1,203 сек. Вариант 1: 14,175 сек. Вариант 2: 1,156 сек. | |||
| 30
    
        jsmith82 13.01.12✎ 12:15 | 
        Для и=1 по 1000 цикл ТелоЦикла(); КонецЦикла;     | |||
| 31
    
        jsmith82 13.01.12✎ 12:16 | 
        в общем идея понятна, любое  тело цикла обрамлять в отдельную процедуру     | |||
| 32
    
        GROOVY 13.01.12✎ 12:17 | 
        (0) Вот так новичкам лапшу и навешивают :)     | |||
| 33
    
        hhhh 13.01.12✎ 12:20 | 
        (29) точка с запятой ведь не нужна. Попробуй
  Для й=0 По 1000000 Цикл й=й КонецЦикла; | |||
| 34
    
        Wobland 13.01.12✎ 12:27 | 
        (33) пошутил? монописуально
  Вариант 1: 14,252 сек. Вариант 2: 1,156 сек. | |||
| 35
    
        GROOVY 13.01.12✎ 12:27 | 
        (34) А вы тут что на полном серьезе это обсуждаете?!     | |||
| 36
    
        Cube 13.01.12✎ 12:28 | 
        (35) +1. Я вот тоже насторожился))     | |||
| 37
    
        Wobland 13.01.12✎ 12:28 | 
        (35) я не знаю, я выпал из разговора ;)     | |||
| 38
    
        БалбесВ1с 13.01.12✎ 12:29 | 
        (35)Что так всполошился? Твой секрет раскрыт!     | |||
| 39
    
        Турбо 13.01.12✎ 12:30 | 
        "Секреты программирования в 1с" )))     | |||
| 40
    
        GROOVY 13.01.12✎ 12:33 | 
        (38) О каком секрете идет речь? Я офигеваю от того что топик реально кто то всерьез может воспринимать.     | |||
| 41
    
        МуМу 13.01.12✎ 12:33 | 
        (0) Бред что бы это обсуждать серьезно.     | |||
| 42
    
        Cube 13.01.12✎ 12:35 | 
        Блин, реально... Код обработки:
  Процедура КнопкаВыполнитьНажатие(Кнопка) обMSScriptControl = Новый COMОбъект("MSScriptControl.ScriptControl"); обMSScriptControl.Language = "javascript"; // вариант 1 Старт=обMSScriptControl.eval("new Date().getTime()"); Для й=0 По 1000000 Цикл й=й; КонецЦикла; Финиш=обMSScriptControl.eval("new Date().getTime()"); Сообщить("Вариант 1: "+(Финиш-Старт)/1000+" сек."); // вариант 2 Старт=обMSScriptControl.eval("new Date().getTime()"); Для й=0 По 1000000 Цикл й=й; КонецЦикла; Финиш=обMSScriptControl.eval("new Date().getTime()"); Сообщить("Вариант 2: "+(Финиш-Старт)/1000+" сек."); КонецПроцедуры //КнопкаВыполнитьНажатие() Результаты: Вариант 1: 7,35 сек. Вариант 2: 0,587 сек. Вариант 1: 7,207 сек. Вариант 2: 0,587 сек. | |||
| 43
    
        Wobland 13.01.12✎ 12:35 | 
        (40) модули лопатить, конечно, бред, а вот вырост производительности на порядок достойно внимания     | |||
| 44
    
        decdmb 13.01.12✎ 12:36 | 
        Никто не в курсе, 1С планирует добавить в язык asm-вставки??? ;P     | |||
| 45
    
        GROOVY 13.01.12✎ 12:37 | 
        Без отладки ктонить тестил?     | |||
| 46
    
        Cube 13.01.12✎ 12:37 | 
        (42) Я в шоке... Где подвох? о_О     | |||
| 47
    
        decdmb 13.01.12✎ 12:38 | 
        (45)
  Вариант 1: 0,757 сек. Вариант 2: 0,526 сек. | |||
| 48
    
        Cube 13.01.12✎ 12:38 | 
        (45) Без отладки. Рабочая база на SQL:
  Вариант 1: 1,076 сек. Вариант 2: 0,573 сек. Вариант 1: 1,03 сек. Вариант 2: 0,577 сек. Вариант 1: 1,045 сек. Вариант 2: 0,593 сек. | |||
| 49
    
        Cube 13.01.12✎ 12:49 | 
        Так это, че делать-то будем?)) Групповую обработку текстов модулей?)))))     | |||
| 50
    
        H A D G E H O G s 13.01.12✎ 12:53 | 
        Отключайте отладчик.     | |||
| 51
    
        GROOVY 13.01.12✎ 12:53 | 
        Давайте проясним. 
  1С это платформа-интерпретатор с предварительной компиляцией. по сути скриптовый язык который из ЧПЯ скрипт переписывает в свой формат (СФ). В СФ игнорируются пробелы, переносы, комментарии и прочая хня... => скорость выполнения может меняться только на этапе предварительной компиляции. Все. Кто видел СФ меня поймет. кто не видел - советую создать обработку, запаролить ее модуль и покурить в сторону блокнота++ для медитации. | |||
| 52
    
        Cube 13.01.12✎ 12:56 | 
        (50) Читай (48).     | |||
| 53
    
        hhhh 13.01.12✎ 12:58 | 
        (52) ну вообще-то по сравнению с запросами эта прибавка - такой мизер, что не парься даже.
  Эти циклы занимают 0,0001% от общего времени выполнения кода, а будут занимать 0,00001%. | |||
| 54
    
        DmitrO 13.01.12✎ 13:10 | 
        1С во время работы модуля, между отработкой каждой строки проверяет очередь сообщений на предмет сообщений WM_PAINT и WM_NCPAINT и если они там есть, то диспатчит их (собственно выполняет отрисовку). Это сделано для того, чтобы окно приложения не "замерзало".
  Косвенным подтверждением этого предположения может быть пропорциональное увеличение разницы в замерах с увеличением количества отрисовок. | |||
| 55
    
        kosts 13.01.12✎ 13:12 | 
        (0) Тестирование на более реальной задаче
  Тест Обработано 1 155 записей Вариант 1: 11,749 сек. Обработано 1 155 записей Вариант 2: 11,688 сек. Тест Обработано 1 155 записей Вариант 1: 12,203 сек. Обработано 1 155 записей Вариант 2: 11,765 сек. Тест Обработано 1 155 записей Вариант 1: 11,781 сек. Обработано 1 155 записей Вариант 2: 11,703 сек. 
 Вижу что очень мало смысла все пихать в одну строку. | |||
| 56
    
        kosts 13.01.12✎ 13:15 | 
        Еще интересно проверить выполнение на сервере...     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |