|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
11.09.2016, 20:56 | #101 | ||
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
итого, я просто написал один метод аналогичный вашему.
и скорость та же.(даже на пару тиков быстрее) ну а Linq я по приколу протестировал TestSL это ваш класс. TestOwn стандартный + мой метод доступа по индексу. ко всем спискам идет обращение к одинаковым индексам. так что тут разницы нет. Цитата:
так что мы пришли к тому что таки лишняя работа? Цитата:
Код:
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. Последний раз редактировалось Пепел Феникса; 11.09.2016 в 21:25. |
||
11.09.2016, 21:06 | #102 |
Спокойный псих
Участник клуба
Регистрация: 19.03.2013
Сообщений: 1,538
|
Alex11223
Программа notepad++ позволяет выполнять функцию "Заменить всё". Определяю характер бага, исправляю в одном файле, в остальных выполняю замену по такому же принципу. Добавление фич, как уже было сказано - конкретное требование, встречается довольно редко, и повторений ещё не было. Поэтому "добавление фишки для конкретной задачи" - дело пяти минут. Пепел Феникса Не знаю, как вы считали, мои результаты двухлетней давности показывают примерно 1.5 ускорение. И это я ещё не улучшал логику работы. Раньше писал, как можно улучшить: закольцовка, плюс несколько полей, и переработка "случайного доступа". И не то, что бы времени не жалко - потрачу свободное время, и получу удовольствие от работы, которая в дальнейшем принесёт оптимизацию. Что касается типов, не позволяющих хранить null - возвращается ошибка, естесно в формате исключения. Поэтому весь return null меняется на throw.
Подпись ? Не, не слышал ...
|
11.09.2016, 21:09 | #103 | ||||
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
так стоп..
все хуже. Цитата:
результат еще хуже. Цитата:
Цитата:
там убрано все возможное влияние на результаты.(+ запуск под релизом и вне отладки) в том числе и влияние JIT'а. параметры тестов, 5000 элементов(они одинаковы для обоих списков) + 100 итераций. номера элементов для доступа одинаковые у всех тестов. если же вы делали лишь прямое применение, без прогона циклами, то вы измерили скорость JIT'а, а не класса Цитата:
итог тестов: 1)ваш класс можно применять только для строк. 2)скорость хуже. 3)нужно переписывание под каждый тип. 4)нет поддержки стандартных интерфейсов, итого многий код для вашего класса нужен с нуля(например сложить все строки в одну большую, с разделителем или без) выгоды ноль. надеюсь не будет попыток биться с наглядным результатом. код я перевыложил, в 101 посту. тест проверяет только рандомный доступ. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. Последний раз редактировалось Пепел Феникса; 11.09.2016 в 22:03. |
||||
11.09.2016, 21:35 | #104 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
Да, я на это и намекал
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. |
11.09.2016, 21:42 | #105 |
Спокойный псих
Участник клуба
Регистрация: 19.03.2013
Сообщений: 1,538
|
Пепел Феникса
Что же, вы меня убедили в том, что нужно повторно тестировать собственные классы. У меня всё работало, и работало быстрее встроенных классов. И в придачу буду оптимизировать - улучшать логику.
Подпись ? Не, не слышал ...
|
11.09.2016, 21:47 | #106 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
если вы не сделали правильную оценку(а оценивать дотнет сложнее чем просто С++), то можете даже не пытаться тестировать.
быстрее сомневаюсь что сможете. как я уже говорил, время ваше, если оно у вас лишнее есть, то вперед. как я говорил вы со своим классом отказались от многого. например как насчет соединения всех строк из вашего списка в одну? Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
11.09.2016, 21:56 | #107 |
Спокойный псих
Участник клуба
Регистрация: 19.03.2013
Сообщений: 1,538
|
Пепел Феникса
Я делал правильную оценку - независимую, с применением рандома, причём без предварительного сохранения оного, а на лету ... Для обоих коллекций. Мало того, я проводил три одинаковых теста, так как я уже знал о наличии JIT. Етстесно, результат первого был чуть хуже. Ваш пример (соединение строк в одну) - задача тривиальная, и сделать можно, как говорил - за пять минут. И я ещё не встречал такую необходимость. Покажите конкретный пример.
Подпись ? Не, не слышал ...
|
11.09.2016, 21:59 | #108 | ||
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
Цитата:
именно для этого я сохраняю массив индексов, что разница есть только в реализациях тестируемого. Цитата:
как я решать буду, я знаю я показал как тестировал, ваш код показал худший результат, и код максимально независим от всех условий в принципе. (+ остальные пункты 103 поста тоже актуальны) как вы можете заметить, стандартный класс не умеет обращаться по индексу, но я его расширил не переписывая его, и сохраняя всю мощь генериков.(кстати скорость кода практически не изменится при смене типа хранилища в коде) иногда велосипеды полезны, но не всегда. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. Последний раз редактировалось Пепел Феникса; 11.09.2016 в 22:09. |
||
11.09.2016, 22:13 | #109 |
Спокойный псих
Участник клуба
Регистрация: 19.03.2013
Сообщений: 1,538
|
Пепел Феникса
Код:
Код:
Подпись ? Не, не слышал ...
|
11.09.2016, 22:17 | #110 | ||
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
Цитата:
суть в том что ваш код, создает кучу объектов во время работы и так же выделяет память на каждой итерации.(ну и как следствие отработает медленнее) как раз то о чем я говорил, так что думайте дальше, стоит ли продолжать выкидывать генофонд. Цитата:
как вы сохранили кучу индексов не в массив, тоже интересно Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
||
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Небольшое веб-приложение на ASP.NET | aly-lucenko | Фриланс | 10 | 10.01.2014 23:31 |
Веб-приложение asp.net MVC и с чем его едят | nec117 | ASP.NET | 0 | 18.04.2011 17:04 |