В .NET 4.0 появился класс BlockingCollection. С его помошью, к примеру, очень элегантно реализуется паттерн Producer-consumer.
Однако, как оказывается, в нем есть утечка памяти....
В тикете описан workaround, с реализацией обвертки над объектом, который использоется в коллекции, и последующим сбросом поля содержащего ссылку на реальный объект в null.
Как я понимаю это решает проблему только частично, так как в таком случае очишается ссылка на реальный объект, но ссылка на обвертку остается.
С помощью данного класса я в многопоточном режиме парсил csv файлы объемом в несколько гигабайт, с последующей записью в БД. Два дня убил на дебаг... После реализации workaround'a, у меня получилось загрузить файл объемом в 1GB, но на 13GB, я снова поймал Out of memory:(
понедельник, 19 сентября 2011 г.
понедельник, 12 сентября 2011 г.
OFF: О футболе
Рейтинг ФИФА:
40 Burkina Faso 646 -1 Down -15
41 Belarus 645 1 Up 9
42 Czech Republic 635 -4 Down -35
43 Jamaica 623 1 Up -9
44 Venezuela 615 -4 Down -33
45 Hungary 613 2 Up 10
46 Algeria 612 6 Up 37
47 South Africa 602 2 Up 5
48 Ukraine 598 -3 Down -22
49 Senegal 591 -3 Down -28
50 Honduras 589 1 Up -3
Дожились... Нас обошла Белоруссия и Буркина-Фасо, а в спину дышит Гондурас. ЕВРО будет нашим:)
40 Burkina Faso 646 -1 Down -15
41 Belarus 645 1 Up 9
42 Czech Republic 635 -4 Down -35
43 Jamaica 623 1 Up -9
44 Venezuela 615 -4 Down -33
45 Hungary 613 2 Up 10
46 Algeria 612 6 Up 37
47 South Africa 602 2 Up 5
48 Ukraine 598 -3 Down -22
49 Senegal 591 -3 Down -28
50 Honduras 589 1 Up -3
Дожились... Нас обошла Белоруссия и Буркина-Фасо, а в спину дышит Гондурас. ЕВРО будет нашим:)