Коллекции C #: список < MyClass > или IEnumerable < MyClass < [Дубликат]

У меня было хорошее поведение из библиотеки Каира (http://www.cairographics.org) в среде веб-сервера ASP.Net. Я действительно перешел в cairo из WPF из-за плохой модели использования памяти WPF для веб-материалов.

WPF фактически имеет тенденцию выводить ваш рабочий процесс из памяти. Ни один из объектов WPF не реализует IDisposable, и многие из них ссылаются на неуправляемую память, которая освобождается только через финализатор. Тяжелое использование WPF (особенно если ваш сервер значительно облагается ЦП) в конечном итоге приведет к выходу из памяти, потому что ваша очередь финализатора становится насыщенной. Например, когда я занимался профилированием своего приложения, очередь финализации имела более 50 000 объектов, многие из которых содержали ссылки на неуправляемую память. Каир вел себя намного лучше для меня, и его использование памяти было гораздо более предсказуемым, чем WPF.

Если вы заинтересованы в использовании cairo, возьмите libs с сайта GTK +. У них есть x86, а также набор двоичных файлов x64.

Единственным недостатком является то, что cairo не может читать / писать JPG изначально; однако вы можете легко адаптировать материал WPF для чтения / записи JPG и выполнить повторную выборку / масштабирование / рисование / что-то еще, используя Cairo.

0
задан Oleg Sh 17 January 2019 в 16:54
поделиться