ILookup <TKey, TVal> по сравнению с IGrouping <TKey, TVal>

В целом выделение стека быстрее, чем выделение "кучи", как упомянуто почти каждым ответом выше. Нажатие стека или поп являются O (1), тогда как выделение или освобождение от "кучи" могли потребовать обхода предыдущих выделений. Однако Вы не должны обычно выделять в трудных, интенсивных производительностью циклах, таким образом, выбор будет обычно сводиться к другим факторам.

могло бы быть хорошо сделать это различие: можно использовать "средство выделения стека" на "куче". Строго говоря я беру выделение стека для значения фактического метода выделения, а не местоположения выделения. Если Вы выделяете много материала на фактической стопке программы, которая могла бы быть плохой по ряду причин. С другой стороны, использование метода стека для выделения на "куче", если это возможно, является лучшим выбором, который можно сделать для метода назначения.

, Так как Вы упомянули Metrowerks и PPC, я предполагаю, что Вы имеете в виду Wii. В этом случае память в большом почете, и использование метода назначения стека везде, где возможные гарантии, что Вы не тратите впустую память на фрагменты. Конечно, выполнение этого требует намного большего ухода, чем "нормальные" методы назначения "кучи". Мудро оценить компромиссы для каждой ситуации.

75
задан prostynick 24 September 2013 в 13:00
поделиться

1 ответ

Да, все правильно.

И ILookup также расширяет IEnumerable > , чтобы вы могли перебирать все пары ключ / коллекция, а также (или вместо) просто искать определенные ключи.

Я в основном думаю о ILookup как о ] IDictionary > .

Имейте в виду, что ToLookup - это операция «сделать это сейчас» (немедленное выполнение), тогда как GroupBy - отложено. Как это часто бывает, с тем, как работает "pull LINQ", когда вы начинаете извлекать IGrouping из результата GroupBy , он все равно должен прочитать все данные (потому что вы Можно' t группа переключателей на полпути), тогда как в других реализациях она может давать результат потоковой передачи. (Это происходит в Push LINQ; я ожидал, что LINQ to Events будет таким же.)

75
ответ дан 24 November 2019 в 11:43
поделиться
Другие вопросы по тегам:

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