|
Тоже самое, но LINQом?
|
|||
---|---|---|---|
#18+
Есть метод: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.
Есть тормозящий примерно в трое LINQ Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
Есть ли возможность нарисовать LINQ работающий с той же скоростью? Фактически интересует возможность транслировать LINQ во время компиляции - без этого, похоже, не вытянуть. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.03.2019, 19:12 |
|
Тоже самое, но LINQом?
|
|||
---|---|---|---|
#18+
Ошибся - перекиньте в нужный форум, плс... Модератор: Тема перенесена из форума "WinForms, .Net Framework". ... |
|||
:
Нравится:
Не нравится:
|
|||
21.03.2019, 19:18 |
|
Тоже самое, но LINQом?
|
|||
---|---|---|---|
#18+
PinkCatЕсть ли возможность нарисовать LINQ работающий с той же скоростью?Зачем? Код: c# 1.
такой Linq подойдет или не считается? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.03.2019, 19:23 |
|
Тоже самое, но LINQом?
|
|||
---|---|---|---|
#18+
Shocker.Pro, На входе - массив типов Type[] На выходе - заполненный CodeNamespace.Imports - дистинктивный список намеспасов P.S. CodeNamespace.Imports.AddRange() - не умеет работать с IEnumerable() - понимает только массив ... |
|||
:
Нравится:
Не нравится:
|
|||
21.03.2019, 19:44 |
|
Тоже самое, но LINQом?
|
|||
---|---|---|---|
#18+
Shocker.Pro, Зачем? ----- Есть ли смысл переходить на LINQ? Все же в 3 раза медленнее... хотя обычно у меня получалось наоборот.... ... |
|||
:
Нравится:
Не нравится:
|
|||
21.03.2019, 19:46 |
|
Тоже самое, но LINQом?
|
|||
---|---|---|---|
#18+
PinkCatНа входе - массив типов Type[] На выходе - заполненный CodeNamespace.Imports - дистинктивный список намеспасов P.S. CodeNamespace.Imports.AddRange() - не умеет работать с IEnumerable() - понимает только массиви? это и так понятно из кода PinkCatЕсть ли смысл переходить на LINQ?что значит "переходить"? Любым инструментом надо пользоваться по назначению, понимая, как он работает ... |
|||
:
Нравится:
Не нравится:
|
|||
21.03.2019, 20:09 |
|
Тоже самое, но LINQом?
|
|||
---|---|---|---|
#18+
Shocker.Pro, и? это и так понятно из кода ----- В предложенном тобою коде делается другое. Любым инструментом надо пользоваться по назначению, понимая, как он работает ----- Моих навыков достаточно только для получения заданного результата, но не производительности. Вот и ищу того кто "умеет и понимает" - до уровня когда можно сравнять производительность - может чему еще научусь. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.03.2019, 20:15 |
|
Тоже самое, но LINQом?
|
|||
---|---|---|---|
#18+
PinkCatВ предложенном тобою коде делается другое.Разве? Тот же самый массив CodeNamespaceImport[], который можешь добавлять в свой Imports PinkCatВот и ищу того кто "умеет и понимает" - до уровня когда можно сравнять производительность - может чему еще научусь.Ну я тебе предложил использовать HashSet вместо Distinct, то есть нечто среднее между двумя твоими вариантами - попробуй ... |
|||
:
Нравится:
Не нравится:
|
|||
21.03.2019, 20:31 |
|
Тоже самое, но LINQом?
|
|||
---|---|---|---|
#18+
Shocker.Pro, Тот же самый массив ----- Значит Я не понял. попробуй ---- Пора домой - завтра не буду, потом выходные - буду ковырять в понедельник. Но пробовать - буду - спасибки за вариант. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.03.2019, 20:46 |
|
Тоже самое, но LINQом?
|
|||
---|---|---|---|
#18+
Кстати, зачем тут вообще расчленение FullName, если у типа есть свойство Namespace? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.03.2019, 14:38 |
|
Тоже самое, но LINQом?
|
|||
---|---|---|---|
#18+
Попробовать можно заменить Distinct() на ToHashSet(). Хотя я подозреваю, что Distinct() и так внутри что-то такое и делает. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.03.2019, 11:36 |
|
Тоже самое, но LINQом?
|
|||
---|---|---|---|
#18+
fkthatПопробовать можно заменить Distinct() на ToHashSet(). Хотя я подозреваю, что Distinct() и так внутри что-то такое и делает.ToHashSet появился только в 4.7.2, поэтому я на всякий случай предложил использовать конструктор HashSet. Distinct не то же самое делает, судя по исходникам, там используются internal-коллекции ... |
|||
:
Нравится:
Не нравится:
|
|||
24.03.2019, 11:40 |
|
Тоже самое, но LINQом?
|
|||
---|---|---|---|
#18+
Любопытства для посмотрел - на самом деле он использует не HashSet а обычный Set - может быть дело в этом. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.03.2019, 11:46 |
|
Тоже самое, но LINQом?
|
|||
---|---|---|---|
#18+
Shocker.Pro, Кстати, зачем тут вообще расчленение FullName, если у типа есть свойство Namespace? ----- Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114.
Linq model 1 : 27165 ms. Items = 78 Linq model 2 : 26986 ms. Items = 78 Linq model 3 : 27186 ms. Items = 78 Linq model 4 : 3972 ms. Items = 79 Но с этой стороны Я на код не смотрел - интересовал только LINQ vs static method. У каких-то классов Namespace равен null - не задан - лишнее ентри. Код: c# 1. 2. 3. 4. 5. 6. 7.
Linq model 5 : 4623 ms. Items = 78 ... |
|||
:
Нравится:
Не нравится:
|
|||
25.03.2019, 13:37 |
|
Тоже самое, но LINQом?
|
|||
---|---|---|---|
#18+
Ну вишь, я прав насчет хэшсета PinkCatУ каких-то классов Namespace равен null - не задан - лишнее ентри.Ты его не туда пихаешь, зачем в общий цикл-то? Код: c# 1. 2. 3. 4. 5. 6. 7. 8.
... |
|||
:
Нравится:
Не нравится:
|
|||
25.03.2019, 13:42 |
|
Тоже самое, но LINQом?
|
|||
---|---|---|---|
#18+
PinkCat, Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
HashSet/NS ver : 4036 ms; items 78 ... |
|||
:
Нравится:
Не нравится:
|
|||
25.03.2019, 13:46 |
|
Тоже самое, но LINQом?
|
|||
---|---|---|---|
#18+
Shocker.Pro, Сейчас посмотрю эту версию. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.03.2019, 13:47 |
|
Тоже самое, но LINQом?
|
|||
---|---|---|---|
#18+
Shocker.Pro, Static func HashSet/NS2 ver : 3641 ms; items 78 Linq: Linq model 6 : 3947 ms. items 78 Хммм... в 6 раз быстрее кода мелкомягких... Но все же LINQ в данном решении немного медленее. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.03.2019, 13:57 |
|
Тоже самое, но LINQом?
|
|||
---|---|---|---|
#18+
Ради прикола, проверил в Core 2. Distinct() vs ToHashSet() vs new HashSet(...). Набор данных - мильон случайных строк длиной по 128 символов каждая. Distinct() сосет у двух других практически всегда, но не так, чтобы прямо уж так с глубоким заглотом ToHashSet() и просто new HashSet() как бы, сосут друг у друга понемножку с переменным успехом. Скорее всего зависит от того, как хэши раскинулись. Внутри себя Distinct() использует нечто очень похожее на хешсет, но не тот хешсет, который общедоступный HashSet, а какой-то свой internal - я в душе не знаю, почему, м.б., какое-то наследие самого древнего LINQ, м.б. тогда HashSet-а еще не было. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.03.2019, 22:25 |
|
|
start [/forum/topic.php?fid=17&fpage=3&tid=1349130]: |
0ms |
get settings: |
11ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
33ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
54ms |
get tp. blocked users: |
2ms |
others: | 11ms |
total: | 147ms |
0 / 0 |