Здравствуйте, Sinix, Вы писали:
S>Здравствуйте, Gattaka, Вы писали:
G>>Смешно! .NET и перфоманс.
S>Ну тут как: кому-то смешно, кто-то делает
G>>Так вот оно падает по OutOfMemory — стандартные коллекции не могут аллоцировать более 2ГБ памяти.
S>Два варианта — или проблема в исчерпании адресного пространства / фрагментации LOH, или <gcAllowVeryLargeObjects> не указан.
S>Нехватка АП лечится снятой галочкой prefer 32-bit, фрагментация LOH — обновлением фреймворка и (в тяжёлых случаях) server gc.
Нет, это все не работает — проверял, а не просто фантазирую.
G>>После поста Липперта на эту тему: Ответ Липперта как-то совсем грустно стало.
S>А в чём проблема-то?
S>S>off-the-shelf parts like Dictionary were designed to solve more common business problems, like mapping zip codes to cities and that sort of thing.
Иными словами над перфомансом особо не задумывались. Просто для решения бизнес-задач. Еще раз отмечу, что у питона таких проблем нет и все работает на ура.
S>Не подходят стандартные контейнеры — используем сторонние (c5 пойдёт) или пишем свою.
S>Ну, или как правильно подсказывают в ответах, используем решение, не утыкающееся в память.
Пишем свое — это, конечно сильно. С5-проверим, но на stackoverflow встречал мнение, что ему кампец еще быстрее, чем стандартному Dictionary придет. Но надо проверить.