Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / на что хоть нарвался? / 25 сообщений из 119, страница 1 из 5
03.02.2013, 18:54
    #38135377
ViPRos
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
на что хоть нарвался?
Код: c#
1.
2.
3.
                        nproc = nTreeNodeDicSpecifId[specificid].ToList();
                        List<Guid> links = nproc.SelectMany(n => n.proc.proc_outlink).Select(s => s.linkid).Distinct().ToList();
                        nodes = nproc.Where(n => (n.proc.proc_inlink.Count() == 0) || (n.proc.proc_inlink.Select(inl => inl.linkid).Intersect (links).Count() == 0)).ToList();



эти срочки выключают мой ноут без предупреждения, в собтиях- неожиданное отключение и все.
В nproc - порядка по 250 000 inlinks и outlinks.
...
Рейтинг: 0 / 0
03.02.2013, 19:48
    #38135404
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
на что хоть нарвался?
ViPRos, на что, на что, на быдлокод и говнореализацию, вот на что. Переписывать надо, фигли.
...
Рейтинг: 0 / 0
03.02.2013, 19:50
    #38135406
SeVa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
на что хоть нарвался?
ViPRos
Код: c#
1.
2.
3.
                        nproc = nTreeNodeDicSpecifId[specificid].ToList();
                        List<Guid> links = nproc.SelectMany(n => n.proc.proc_outlink).Select(s => s.linkid).Distinct().ToList();
                        nodes = nproc.Where(n => (n.proc.proc_inlink.Count() == 0) || (n.proc.proc_inlink.Select(inl => inl.linkid).Intersect (links).Count() == 0)).ToList();



эти срочки выключают мой ноут без предупреждения, в собтиях- неожиданное отключение и все.
В nproc - порядка по 250 000 inlinks и outlinks.

На ламера, который не знает как готовить linq

nproc = nTreeNodeDicSpecifId[specificid].ToList(); // ToList совершенно не нужен. Без него не будет сотен тысяч добавление в list c выделением памяти. На таких объемах - это полные тормоза
List<Guid> links = nproc.SelectMany(n => n.proc.proc_outlink).Select(s => s.linkid).Distinct().ToList(); // аналогично. За это нужно бить линейкой по рукам
Вместо (n.proc.proc_inlink.Count() == 0) должен быть (!n.proc.proc_inlink.Any())
|| заменить на Union
etc
etc
...
Рейтинг: 0 / 0
03.02.2013, 20:15
    #38135415
ViPRos
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
на что хоть нарвался?
то есть вы думаете что объем вычислений вырубает комп?
...
Рейтинг: 0 / 0
03.02.2013, 20:24
    #38135416
Алексей К
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
на что хоть нарвался?
ViPRosто есть вы думаете что объем вычислений вырубает комп?Да. Перегревается. Радиаторы пропылесосить надо.
...
Рейтинг: 0 / 0
03.02.2013, 20:28
    #38135419
ViPRos
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
на что хоть нарвался?
Алексей К,

точно, я так и думал
даже машина говнокод не принимает блин
...
Рейтинг: 0 / 0
03.02.2013, 20:50
    #38135436
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
на что хоть нарвался?
Сахват, ты жжешь однако. Пиши лучше на датасета, софт будет безопаснее :)
...
Рейтинг: 0 / 0
03.02.2013, 20:53
    #38135440
ViPRos
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
на что хоть нарвался?
МСУ,

lя так и пишу кругом форичы
а тут решил посмотреть как скрость линк отличается от форичов
я даже не знал что там есть Any и т.д. их оказывается дофига и больше
...
Рейтинг: 0 / 0
03.02.2013, 20:55
    #38135441
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
на что хоть нарвался?
ViPRosМСУ,

lя так и пишу кругом форичы
а тут решил посмотреть как скрость линк отличается от форичов
я даже не знал что там есть Any и т.д. их оказывается дофига и больше
...
Рейтинг: 0 / 0
03.02.2013, 20:56
    #38135444
SeVa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
на что хоть нарвался?
ViPRosАлексей К,

точно, я так и думал
даже машина говнокод не принимает блин

А это ты, Сахават, решил linq применить ;-) На таких объемах нужна оптимизация и понимание принципов linq. Посмотри оператор yield и для чего он нужен , тк весь linq на нем
...
Рейтинг: 0 / 0
03.02.2013, 20:57
    #38135445
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
на что хоть нарвался?
Сахават, так глядишь скоро и ORM понравится, когда начнешь "копать" ;)
...
Рейтинг: 0 / 0
03.02.2013, 21:03
    #38135447
ViPRos
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
на что хоть нарвался?
все эти Any, Union, var, IEnumerable вместо List нифига не дали в плане скорости комп так и валится
фигня этот линк
как и думал дармовщины нет
хотелось большой кусок кода - где каждый терминальный узел помечается при создании графа, при уничтожении терминальных узлов назначаются другие, ведутся индексы по узлам и т.д. которая работает пулей), написать красивый кот в одну стоочку ;)
фигушки
...
Рейтинг: 0 / 0
03.02.2013, 21:04
    #38135448
ViPRos
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
на что хоть нарвался?
СЛ выручает оптимизатор и индексы со статистикой, а линк инвали на голову
...
Рейтинг: 0 / 0
03.02.2013, 21:04
    #38135449
ViPRos
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
на что хоть нарвался?
СЛ = СКЛ
...
Рейтинг: 0 / 0
03.02.2013, 21:12
    #38135457
ViPRos
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
на что хоть нарвался?
счас купнусь и почитаю что за елда
...
Рейтинг: 0 / 0
03.02.2013, 21:44
    #38135467
ViPRos
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
на что хоть нарвался?
SeVaViPRosАлексей К,

точно, я так и думал
даже машина говнокод не принимает блин

А это ты, Сахават, решил linq применить ;-) На таких объемах нужна оптимизация и понимание принципов linq. Посмотри оператор yield и для чего он нужен , тк весь linq на нем
С Листами ты не прав оказался, я интутивно подумал, что лучше промежуточные вычисления делать один раз и зафиксировать
без это линк каждый раз запускает елду для вложенного запроса
ФИГНЯ
или я че то не понял?
...
Рейтинг: 0 / 0
03.02.2013, 22:09
    #38135476
beg-in-er
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
на что хоть нарвался?
ViPRos,

как то тестировал Linq и for между собой. какова цена более лёгкого написания кода

сравнивал по скорости на простом запросе типа select * from where a1<... and a2<...
ну типа :
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
       class zzz
       {    public int Col1, Col2;    
       }
        int meth_link(zzz[] Z, int a1, int a2)
        {
            var v = Z.Where(x => x.Col1 < a1 && x.Col1 > a2 && x.Col2 < a2).ToArray();
            return v.Length;
        }


и сравнивал тот же массив , но без линка
и 2 отдельных массива int

размер массивов 9.500.000 элементов

1)для массива zzz[]
For Class Total time =0,122006975

2)два целочисленных массива
For 2array Total time =0,084504825

3)тоже самое , но в с++
c++ Total time =0,053003025

4)
LINQ Total time =0,2920167

Результат
For/Linq 3,37425165207618
linq/cpp 5,26635631052809
c#/cpp 1,56074793866892

обычный массив zzz в 2.3 раза быстрее линка
ну а с++ аж в 5 раз.
и это на простом select
...
Рейтинг: 0 / 0
03.02.2013, 22:10
    #38135478
beg-in-er
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
на что хоть нарвался?
собсна тест прога
...
Рейтинг: 0 / 0
03.02.2013, 22:11
    #38135479
ViPRos
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
на что хоть нарвался?
beg-in-er,

ну я и говорю что говно, а при больших данных воще не пашет
а про Лист Сева наврал
все промежуточные расчет надо зафиксировать
...
Рейтинг: 0 / 0
03.02.2013, 22:19
    #38135481
ViPRos
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
на что хоть нарвался?
а на днях попался с TryGetValue
кругом рекомендации, типа это говно быстрее, чем Contains и присовение
вранье полное
GC убивает все рекомендации на корню


эт я типа решил прогу пересмотреть и оптимизировать код с помощью нововведений
нах
...
Рейтинг: 0 / 0
03.02.2013, 22:22
    #38135482
ViPRos
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
на что хоть нарвался?
вывод (промежутоное мое мнение (С))
линк важно там, где комп не пылесосили года 3, так как линк не дает процу работать свыше 90% мощности :)
...
Рейтинг: 0 / 0
03.02.2013, 22:22
    #38135483
beg-in-er
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
на что хоть нарвался?
ViPRosну я и говорю что говно
ну на маленьких размерах ещё ничё так.
хотя linq join это песня.
на скорость не тестировал, но думаю там ещё веселее будет.
...
Рейтинг: 0 / 0
03.02.2013, 22:23
    #38135484
ViPRos
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
на что хоть нарвался?
skyANAViPRos, на что, на что, на быдлокод и говнореализацию, вот на что. Переписывать надо, фигли.
насчет быдлокод - согласен
а реализаций - наверное штук 10, начиная от чисто СКЛ и кончая от чисто за счет структур и индексов в памяти
...
Рейтинг: 0 / 0
03.02.2013, 22:24
    #38135485
ViPRos
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
на что хоть нарвался?
beg-in-er,

я думал самое говно в с# - рекурсии, линк превзошел рекурсию
...
Рейтинг: 0 / 0
03.02.2013, 22:40
    #38135492
Lord British
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
на что хоть нарвался?
ViPRos,

Просто, у linq своя ниша.

Какая у вас СУБД?

А что вы делаете с графом? В Oracle есть часть в Oracle Spatial, называется Network Data Model, PL/SQL и Java API для обработки данных. Там есть всякие реализованные алгоритмы типа поиск минимального пути на основе весов ребер/вершин и т. п.. Чем примечательно Java API, для него можно в СУБД после заливки сети создать разбиение всего графа на куски (хранятся в lob'ах) и это Java API походу работы алгоритма подгружает прозрачн для программиста только необходимые куски за один присест (в случае есл разбиение было создано).

Может посмотреть в сторону такого направления?
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / на что хоть нарвался? / 25 сообщений из 119, страница 1 из 5
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]