170 похожих чатов

Вопрос перфоманса, что лучше использовать IReadOnlyCollection, Array или IReadOnlyList в

принимаемых параметрах приватного метода, к примеру, мне необходим доступ по индексу, тогда если я использую IReadOnlyCollection, то приходится вызывать toArray, но если использую массив, тогда если у меня на руках List, то чтобы передать его в метод тоже нужно вызывать toArray, при этом, наверное, хотелось бы чтобы у похожих методов была похожие параметры, а не где-то массив, а где-то IReadOnlyCollection, в таком случае лучше везде использовать IReadOnlyList? Или лучше, например, кастануть лист к массиву? При этом иммутабельность мне не нужна

9 ответов

19 просмотров

Не могу сказать что лучше, но для доступа по индексу можно использовать ElementAt

Зависит от контекста задачи и метода. Общего ответа быть не может тут.

Vladislav- Автор вопроса
Aleksey Kalduzov
Зависит от контекста задачи и метода. Общего ответ...

хорошо, а например, метод чтобы сформировать объект, который будет возвращать, использует лист, лучше ли в таком случае его и вернуть как IEnumarable или скастовать к массиву? Решарпер советует IEnumerable, но я ведь знаю, что у меня там всегда не lazy коллекция

Vladislav- Автор вопроса
Maksim Zenin
Не могу сказать что лучше, но для доступа по индек...

AVOID using ElementAt() in certain scenarios!!! If you know you're going to look up each element, and you have (or could have) over 500, then just call ToArray(), store it in a reusable array variable, and index it off that way. For example; my code was reading data from of an Excel file. I was using ElementAt() to find the SharedStringItem my Cell was referencing. With 500 or less lines, you probably won't notice the difference. With 16K lines, it was taking 100 seconds.

Vladislav- Автор вопроса
Maksim Zenin
И что?

то, что мне нужен перфоманс, и использовать ElementAt() для итерации не очень,и лучше кастануть к массиву

Vladislav
то, что мне нужен перфоманс, и использовать Elemen...

А типа уже нужен? Уже в него все уперлось? Бенчмарки уже есть?

Vladislav
то, что мне нужен перфоманс, и использовать Elemen...

Ты завёл абстрактный разговор за перформансом без никаких вводных данных и тебе даже в цитате пишут что до 500 абсолютно побоку. Ты либо давай полный набор вводных и умные дядьки закидают тебя умными словами про как лучше, либо разговор ни о чём.

Vladislav- Автор вопроса
Aleksey Kalduzov
А типа уже нужен? Уже в него все уперлось? Бенчмар...

нет, но мне сказали написать максимально эффективно с точки зрения количества операция ( ну и времени их выполнения)

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта