|   |   | 
| 
 | v7: Что быстрее работает: Цикл или ВыбратьСтроки()? | ☑ | ||
|---|---|---|---|---|
| 0
    
        Zhuravlik 05.10.11✎ 03:36 | 
        Просто столкнулся, как лучше выбирать элементы - из списка, и делать
  Для сч = 1 по мойСписок.РазмерСписка() Цикл Элемент = мойСписок.ПолучитьЗначение(сч); КонецЦикла; или из таблицы значений, методом ВыбратьСтроки()? тз.ВыбратьСтроки(); Пока тз.ПолучитьСтроку() = 1 Цикл Элемент = тз.ПолучитьЗначение(тз.НомерСтроки, 1); КонецЦикла; | |||
| 1
    
        Zhuravlik 05.10.11✎ 03:37 | 
        + в смысле как быстрее...     | |||
| 2
    
        МихаилМ 05.10.11✎ 03:50 | 
        1 быстрее     | |||
| 3
    
        Zhuravlik 05.10.11✎ 03:57 | 
        Спасибо) а ссылкой не поделитесь с тестированием? Я искал на инфостарте, но что-то не нашел..     | |||
| 4
    
        DJ Anthon 05.10.11✎ 03:59 | 
        а самому слабо потестить?     | |||
| 5
    
        Rie 05.10.11✎ 04:02 | 
        (3) Отладчик. Меню "Отладка". Самый последний пункт.     | |||
| 6
    
        Zhuravlik 05.10.11✎ 04:02 | 
        (4) если бы было не слабо, я бы тему не создавал)) А так, просто если есть велосипед, зачем его изобретать еще раз?     | |||
| 7
    
        Zhuravlik 05.10.11✎ 04:03 | 
        (5) отладчиком еще не научился пользоваться...     | |||
| 8
    
        Rie 05.10.11✎ 04:06 | 
        (7) Тебя с этим поздравить? Или как?
  В (5) тебе дана ссылка. Изучай. | |||
| 9
    
        МихаилМ 05.10.11✎ 04:13 | 
        это же 1с
  а она как обычно врёт в отладчике используйте _GetprformanceCounter() при размере тз более 300 сторок быстрее выгрузить в списки чем пользоваться тз.ПолучитьЗначение() уж больно тормозной. | |||
| 10
    
        Zhuravlik 05.10.11✎ 04:15 | 
        (9) я уже начал делать)) Спасибо.     | |||
| 11
    
        strange2007 05.10.11✎ 04:27 | 
        (9) Зачем???? Разве там точность????? Для точности лучше использовать GetProcessTimes.     | |||
| 12
    
        ЧеловекДуши 05.10.11✎ 05:43 | 
        Быстрее цикл, т.к. ВЫбратьСтроки, сперва жутко повисает, при очень больших (100000 строк) таблицах.     | |||
| 13
    
        ЧеловекДуши 05.10.11✎ 05:45 | 
        + Так же СписокЗначений, работает медленней чем ТаблицаЗначений.
  Особенно это заметно на команде "НайтиЗначение" | |||
| 14
    
        Erhov_egor 05.10.11✎ 06:16 | 
        1 быстрее точно     | |||
| 15
    
        Chai Nic 05.10.11✎ 06:17 | 
        (13) Они оба поиск производят последовательным перебором. Для быстрого поиска используйте объект ИндексированнаяТаблица из 1с++     | |||
| 16
    
        ЧеловекДуши 05.10.11✎ 06:17 | 
        + Так же ТаблицаЗначений работает медленней Индексированной Таблицы ;)     | |||
| 17
    
        ЧеловекДуши 05.10.11✎ 06:18 | 
        +(15)Оба или не оба, но СписокЗначений, работает медленней чем ТаблицаЗначений
  И это уже доказано ;) | |||
| 18
    
        Chai Nic 05.10.11✎ 06:18 | 
        А если таблица/список заведомо небольшие - делайте по критерию максимальной красивости кода. Вам же самим будет легче в дальнейшем..     | |||
| 19
    
        ЧеловекДуши 05.10.11✎ 06:18 | 
        (0)Теперь можешь делать выводы :)     | |||
| 20
    
        ЧеловекДуши 05.10.11✎ 06:19 | 
        (18)Если 10 элементов, то нет разницы.     | |||
| 21
    
        ЧеловекДуши 05.10.11✎ 06:19 | 
        + Вернее ты её незаметишь     | |||
| 22
    
        dva1c 05.10.11✎ 06:19 | 
        Быстрее список, чем ТЗ.
  (15) 1С++ ТС еще рановато, но изучить не мешает. | |||
| 23
    
        ЧеловекДуши 05.10.11✎ 06:20 | 
        (22)Не буду убеждать, но на личном опыте показало, что СписокЗначений медленней ТЗ :)     | |||
| 24
    
        dva1c 05.10.11✎ 06:22 | 
        (23) а замеры что показывали?     | |||
| 25
    
        VladZ 05.10.11✎ 06:39 | 
        (0) Зачем тебе это?     | |||
| 26
    
        VladZ 05.10.11✎ 06:40 | 
        +25 Как показывает практика, в ресурсоемких задачах потеря времени идет на совсем других вещах...     | |||
| 27
    
        dva1c 05.10.11✎ 06:41 | 
        (26)+1     | |||
| 28
    
        Кириллка 05.10.11✎ 06:59 | 
        палец с хе®ом сравниваете.     | |||
| 29
    
        KRV 05.10.11✎ 07:27 | 
        Самое смешное, когда ищут производительность в списке с тремя элементами, зато потом перебором шерстят все документы со времен Царя Гороха..     | |||
| 30
    
        dva1c 05.10.11✎ 07:42 | 
        (29) перебором? а почему не запросом? )     | |||
| 31
    
        dva1c 05.10.11✎ 07:46 | 
        +(30) по идее, пост адресован (0)     | |||
| 32
    
        VladZ 05.10.11✎ 08:26 | 
        (29) Во-во... Вопрос в сабже без видения общего кода - не более чем чисто академический.     | |||
| 33
    
        фобка 05.10.11✎ 09:22 | 
        Процедура Сформировать()
  Lst = CreateObject("ValueList"); For i = 1 To 100000 Do Lst.AddValue(i); EndDo; VT = CreateObject("ValueTable"); VT.InsertColumn("Cnt"); For i = 1 To 100000 Do VT.NewLine(); VT.Cnt = i; EndDo; t1 = _GetPerformanceCounter(); For i = 1 To Lst.GetListSize() Do A = Lst.GetValue(i); EndDo; Message("Цикл по списку: "+(_GetPerformanceCounter() - t1)); t1 = _GetPerformanceCounter(); VT.SelectLines(); While VT.GetLine() = 1 Do A = VT.Cnt; EndDo; Message("Цикл по ТЗ: "+(_GetPerformanceCounter() - t1)); t1 = _GetPerformanceCounter(); For i = 1000 To 20000 Do Lst.FindValue(i); i = i+3; EndDo; Message("Поиск по списку: "+(_GetPerformanceCounter() - t1)); t1 = _GetPerformanceCounter(); For i = 1000 To 20000 Do VT.FindValue(i,0,"Cnt"); i = i+3; EndDo; Message("Поиск по ТЗ: "+(_GetPerformanceCounter() - t1)); КонецПроцедуры Результат: Цикл по списку: 502 Цикл по ТЗ: 717 Поиск по списку: 9690 Поиск по ТЗ: 8234 | |||
| 34
    
        aka MIK 05.10.11✎ 09:24 | 
        те же яйца )     | |||
| 35
    
        Chai Nic 05.10.11✎ 11:01 | 
        (29) Теплый ламповый перебор не сравнится ни с какими богомерзкими черными запросами. К прямым запросам 1с++ сие не относится..     | |||
| 36
    
        Lexxxxx 05.10.11✎ 14:07 | 
        (33) Ну так а почему не 
  Procedure ... EndProcedure ? :) | |||
| 37
    
        VladZ 05.10.11✎ 14:19 | 
        (36) Видимо эта часть кода сгенерирована автоматически. :)     | |||
| 38
    
        Lexxxxx 05.10.11✎ 14:21 | 
        (37) И не лень ему было языки переключать?! Взял бы, как тру программер, и перековеркал шаблоны на английский! :)     | |||
| 39
    
        Кириллка 06.10.11✎ 08:11 | 
        (33)справедливости ради: (0) проход по ТЗ предлагал малость другой.     | |||
| 40
    
        фобка 06.10.11✎ 08:48 | 
        (38)ленивый программист - плохой программист. заметил что среди одинесниковтаких подавляющее большинство. :)
  (39) конечно, в (0) еще медленнее | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |