Подскажите пожалуйста, как используя WPF можно загрузить и отобразить PNG файл высокого разрешения (21600x21600). размер его 120 МБ. При открытии IrfanView в памяти разворачивается в 1335МБ. У меня свободной оперативной памяти более 12 гектаров.
Как я выше писал, что редактором этот файл открывается, а вот
BitmapImage оказался умнее всех и говорит: "Недостаточно памяти для продолжения выполнения программы."
Буду благодарен за помощь.
Здравствуйте, SanyaVB, Вы писали:
SVB>Подскажите пожалуйста, как используя WPF можно загрузить и отобразить PNG файл высокого разрешения (21600x21600). размер его 120 МБ. При открытии IrfanView в памяти разворачивается в 1335МБ. У меня свободной оперативной памяти более 12 гектаров.
SVB>Как я выше писал, что редактором этот файл открывается, а вот BitmapImage оказался умнее всех и говорит: "Недостаточно памяти для продолжения выполнения программы."
SVB>Буду благодарен за помощь.
Нашел причину. Нужно было собирать под платформу x64. Странно... для x86 доступно 3.5ГБ, а ему не хватило этого на распаковку...
Здравствуйте, SanyaVB, Вы писали:
SVB>Здравствуйте, SanyaVB, Вы писали:
SVB>>Подскажите пожалуйста, как используя WPF можно загрузить и отобразить PNG файл высокого разрешения (21600x21600). размер его 120 МБ. При открытии IrfanView в памяти разворачивается в 1335МБ. У меня свободной оперативной памяти более 12 гектаров.
SVB>>Как я выше писал, что редактором этот файл открывается, а вот BitmapImage оказался умнее всех и говорит: "Недостаточно памяти для продолжения выполнения программы."
SVB>>Буду благодарен за помощь.
SVB>Нашел причину. Нужно было собирать под платформу x64. Странно... для x86 доступно 3.5ГБ, а ему не хватило этого на распаковку...
Считать надо немного не так. 2гб на процесс, из них надо непрерывным куском выделить 1,3 гб, что весьма вероятно, что и не получится.
Здравствуйте, SanyaVB, Вы писали:
SVB>Здравствуйте, SanyaVB, Вы писали:
SVB>>Подскажите пожалуйста, как используя WPF можно загрузить и отобразить PNG файл высокого разрешения (21600x21600). размер его 120 МБ. При открытии IrfanView в памяти разворачивается в 1335МБ. У меня свободной оперативной памяти более 12 гектаров.
SVB>>Как я выше писал, что редактором этот файл открывается, а вот BitmapImage оказался умнее всех и говорит: "Недостаточно памяти для продолжения выполнения программы."
SVB>>Буду благодарен за помощь.
SVB>Нашел причину. Нужно было собирать под платформу x64. Странно... для x86 доступно 3.5ГБ, а ему не хватило этого на распаковку...
Для приложений x86 доступно 2 Гб адресного пространства...
На практике .net приложение начинает затыкаться при загруженности 1.3 — 1.6 Гб, потому-что затруднительно становится выделить непрерывный кусок памяти в Large Object Heap из-за ее фрагментированности.
Для открытия таких больших картинок можно поискать библиотеки для "кусочного" и "разномасштабного" чтения png, чтобы не загружать память и ресурсы.
Здравствуйте, vit_as.
в
CLR via C# Jeffrey Richter пишет, что в .Net в x86 для объекта можно выделить максимум 1,5 ГБ. Также это подтверждается
здесь
Здравствуйте, Codechanger, Вы писали:
SVB>>Нашел причину. Нужно было собирать под платформу x64. Странно... для x86 доступно 3.5ГБ, а ему не хватило этого на распаковку...
C>Считать надо немного не так. 2гб на процесс.
в x64 ОС — 4Гб.
Здравствуйте, Abyx, Вы писали:
A>Здравствуйте, Codechanger, Вы писали:
SVB>>>Нашел причину. Нужно было собирать под платформу x64. Странно... для x86 доступно 3.5ГБ, а ему не хватило этого на распаковку...
C>>Считать надо немного не так. 2гб на процесс.
A>в x64 ОС — 4Гб.
В x64 ОС приложение x86 также падает на 1.5 гб выделенной памяти.
Если процесс собран как x64, то ограничение уже зависит от аппаратных ограничений машины. В моем приложении я свободно выделял объекты на 16 гб памяти.