Photoshop
От: Acid the Programmer http://boulder-dash.narod.ru
Дата: 24.09.04 13:15
Оценка:
Народ — хотелось бы обсудить тему того, как в фотошопе устроен ИХ менеджер памяти. Пока что у меня не получается придумать аналог, который работал бы с такойже скоростью. Есть какие-нибудь соображения?
Re: Photoshop
От: Аноним  
Дата: 24.09.04 15:01
Оценка:
Здравствуйте, Acid the Programmer, Вы писали:

ATP>Народ — хотелось бы обсудить тему того, как в фотошопе устроен ИХ менеджер памяти. Пока что у меня не получается придумать аналог, который работал бы с такойже скоростью. Есть какие-нибудь соображения?


Слова-то какие умные... "Менеджер памяти"...
Работа через ScanLines позволяет добиться отличных результатов, сопоставимыми по скорости работы с фотошоповской
Re[2]: Photoshop
От: Acid the Programmer http://boulder-dash.narod.ru
Дата: 24.09.04 15:24
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, Acid the Programmer, Вы писали:


ATP>>Народ — хотелось бы обсудить тему того, как в фотошопе устроен ИХ менеджер памяти. Пока что у меня не получается придумать аналог, который работал бы с такойже скоростью. Есть какие-нибудь соображения?


А>Слова-то какие умные... "Менеджер памяти"...

А>Работа через ScanLines позволяет добиться отличных результатов, сопоставимыми по скорости работы с фотошоповской

Именно менеджер, т.к есть собственный файл подкачки и память вродибы организована тайлами. Интересно у Photoshopа используется линейная модель при работе с изображением или нет?
Re[2]: Photoshop
От: Reunion  
Дата: 25.09.04 02:35
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, Acid the Programmer, Вы писали:


ATP>>Народ — хотелось бы обсудить тему того, как в фотошопе устроен ИХ менеджер памяти. Пока что у меня не получается придумать аналог, который работал бы с такойже скоростью. Есть какие-нибудь соображения?


А>Слова-то какие умные... "Менеджер памяти"...

А>Работа через ScanLines позволяет добиться отличных результатов, сопоставимыми по скорости работы с фотошоповской

ScanLine — это хорошо, но он не решает проблемы загрузки/отображения/редактирования файлов в пару гигабайт... Если картинки сравнительно небольшие — то все замечательно.
Re[3]: Photoshop
От: Аноним  
Дата: 27.09.04 07:41
Оценка:
Здравствуйте, Reunion, Вы писали:

R>Здравствуйте, Аноним, Вы писали:


А>>Здравствуйте, Acid the Programmer, Вы писали:


ATP>>>Народ — хотелось бы обсудить тему того, как в фотошопе устроен ИХ менеджер памяти. Пока что у меня не получается придумать аналог, который работал бы с такойже скоростью. Есть какие-нибудь соображения?


А>>Слова-то какие умные... "Менеджер памяти"...

А>>Работа через ScanLines позволяет добиться отличных результатов, сопоставимыми по скорости работы с фотошоповской

R>ScanLine — это хорошо, но он не решает проблемы загрузки/отображения/редактирования файлов в пару гигабайт... Если картинки сравнительно небольшие — то все замечательно.


Ах, вот о чём речь.
Я видел эту тему в книге Дарахвеидзе П.Г. и Маркова Е.П. "Программирование в Delphi 5".
Там есть глава, где описана работа с графическими файлами объёмом до нескольких террабайт(!).
Re[4]: Photoshop
От: Acid the Programmer http://boulder-dash.narod.ru
Дата: 27.09.04 07:53
Оценка:
А>Ах, вот о чём речь.
А>Я видел эту тему в книге Дарахвеидзе П.Г. и Маркова Е.П. "Программирование в Delphi 5".
А>Там есть глава, где описана работа с графическими файлами объёмом до нескольких террабайт(!).

Ну а можно в двух словах, что там написано на эту тему?
И еще вопрос: Что понимается под термином ScanLine? Может я знаю, но незнал что это именно так называется...
Re[5]: Photoshop
От: Аноним  
Дата: 27.09.04 08:45
Оценка:
Здравствуйте, Acid the Programmer, Вы писали:


А>>Ах, вот о чём речь.

А>>Я видел эту тему в книге Дарахвелидзе П.Г. и Маркова Е.П. "Программирование в Delphi 5".
А>>Там есть глава, где описана работа с графическими файлами объёмом до нескольких террабайт(!).

ATP>Ну а можно в двух словах, что там написано на эту тему?

ATP>И еще вопрос: Что понимается под термином ScanLine? Может я знаю, но незнал что это именно так называется...

ScanLines — одноимённый массив байт, в кототых хранится картинка. Доступ к пискселям происходит непосредственно, а не через тормозную канву (Canvas)
Re[5]: Photoshop
От: Аноним  
Дата: 27.09.04 08:46
Оценка:
Здравствуйте, Acid the Programmer, Вы писали:


А>>Ах, вот о чём речь.

А>>Я видел эту тему в книге Дарахвелидзе П.Г. и Маркова Е.П. "Программирование в Delphi 5".
А>>Там есть глава, где описана работа с графическими файлами объёмом до нескольких террабайт(!).

ATP>Ну а можно в двух словах, что там написано на эту тему?

ATP>И еще вопрос: Что понимается под термином ScanLine? Может я знаю, но незнал что это именно так называется...

...в двух словах описать не могу, т.к. книга лежит дома, а я сейчас на работе.
Поищи, может в сети есть где-то эта книга или статья из неё
Re[6]: Photoshop
От: Acid the Programmer http://boulder-dash.narod.ru
Дата: 27.09.04 09:30
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, Acid the Programmer, Вы писали:



А>>>Ах, вот о чём речь.

А>>>Я видел эту тему в книге Дарахвелидзе П.Г. и Маркова Е.П. "Программирование в Delphi 5".
А>>>Там есть глава, где описана работа с графическими файлами объёмом до нескольких террабайт(!).

ATP>>Ну а можно в двух словах, что там написано на эту тему?

ATP>>И еще вопрос: Что понимается под термином ScanLine? Может я знаю, но незнал что это именно так называется...

А>...в двух словах описать не могу, т.к. книга лежит дома, а я сейчас на работе.

А>Поищи, может в сети есть где-то эта книга или статья из неё

Ну понятно все про ScanLine..... Photoshop конечно работает не так. Пойзучав немного, я пришел к выводу, что его менеджер памяти реализован по Тайлам (квадратам NxM) и память под них он выделяет по мере необходимости. Но вот вопрос: можно ли Тайловую организацию памяти обьединить с линейной (например с помощью структурных исключений)?
Re[4]: Photoshop
От: Dimonka Верблюд  
Дата: 27.09.04 09:54
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Ах, вот о чём речь.

А>Я видел эту тему в книге Дарахвеидзе П.Г. и Маркова Е.П. "Программирование в Delphi 5".
А>Там есть глава, где описана работа с графическими файлами объёмом до нескольких террабайт(!).

Если бы ещё эти советы были практически применимы..

Речь там шла всего-лишь о проецировании файла с картинкой в память..
Но такой способ с фотошоповским менеджером и рядом не лежал..
Re[5]: Photoshop
От: Acid the Programmer http://boulder-dash.narod.ru
Дата: 27.09.04 10:22
Оценка:
Здравствуйте, Dimonka, Вы писали:

D>Здравствуйте, Аноним, Вы писали:


А>>Ах, вот о чём речь.

А>>Я видел эту тему в книге Дарахвеидзе П.Г. и Маркова Е.П. "Программирование в Delphi 5".
А>>Там есть глава, где описана работа с графическими файлами объёмом до нескольких террабайт(!).

D>Если бы ещё эти советы были практически применимы..


D>Речь там шла всего-лишь о проецировании файла с картинкой в память..

D>Но такой способ с фотошоповским менеджером и рядом не лежал..

Не... ну это совсем не интересно. Для таких методов не нужно книжки читать.
Ну неужели никому не приходилось работать с картинками размером 15000х10000 например ?
Re[6]: Photoshop
От: LM Россия www.lmstudio.ru
Дата: 27.09.04 10:34
Оценка:
ну ты правильно говоришь про тайлы
а что тебе мешает их реализовать?
бери за основу виды организации страничной памяти ОС (т.н. стратегии управления страницами) и вперёд
Posted via RSDN NNTP Server 1.9 gamma
LM Studio
Re[7]: Photoshop
От: Acid the Programmer http://boulder-dash.narod.ru
Дата: 27.09.04 11:13
Оценка:
Здравствуйте, LM, Вы писали:

LM>ну ты правильно говоришь про тайлы

LM>а что тебе мешает их реализовать?
LM>бери за основу виды организации страничной памяти ОС (т.н. стратегии управления страницами) и вперёд

Мешает пока то, что у меня в мозгу никак не смешивается линейная структура памяти с тайловой. Ведь я так понимаю, что я не могу веделить меньше 4КБ, т.к. работа ведется по страницам. Получается что я не могу выделить отдельную строку тайла, а могу только сразу несколько строк, да и в соседних тайлах память под строки тоже автоматически выделится. Как быть в таком случае?
Re[8]: Photoshop
От: LM Россия www.lmstudio.ru
Дата: 27.09.04 12:54
Оценка:
рисунок разбиваешь на квадратные тайлы.
у каждого тайла есть различные характеристики, среди которых позиция в оригиальной картинке, высота и ширина изображения в тайле (т.к. может быть частичное заполнение тайла), флаг загруженности, атрибуты для стратегии управления паматью (зависит от самой стратегии).
а с тайлами уже работаешь как с маленькими изображениями
придётся переопределить основные функции рисования и выводы изображений (чтобы, к примеру, линии они автоматически рисовали через несколько тайлов) — а иначе никак, принципиально.
Posted via RSDN NNTP Server 1.9 gamma
LM Studio
Re[9]: Photoshop
От: Acid the Programmer http://boulder-dash.narod.ru
Дата: 27.09.04 13:07
Оценка:
Здравствуйте, LM, Вы писали:

LM>рисунок разбиваешь на квадратные тайлы.

LM>у каждого тайла есть различные характеристики, среди которых позиция в оригиальной картинке, высота и ширина изображения в тайле (т.к. может быть частичное заполнение тайла), флаг загруженности, атрибуты для стратегии управления паматью (зависит от самой стратегии).
LM>а с тайлами уже работаешь как с маленькими изображениями
LM>придётся переопределить основные функции рисования и выводы изображений (чтобы, к примеру, линии они автоматически рисовали через несколько тайлов) — а иначе никак, принципиально.

Неуверен, что у Photoshopa именно так все и устроено Дело в том, что основную головную боль вносят не функции рисования примитивов, т.к точка, линие и т.д, а фильтры изображений. При такой организации очень неудобно писать филтры и обработки т.к:
1. Мы не имеем линейной организации памяти, а как известно максимальная скорось достигается имеено в этом случае.
2. Мы ловим все глюки связанные с граничными эффектами (т.е. многие фильтры Фотошопа не могут быть написаны для каждого тайла в отдельности)
Re[10]: Photoshop
От: LM Россия www.lmstudio.ru
Дата: 27.09.04 14:06
Оценка:
для фильтров не надо ничего мудрить: основные тормоза при работе с большими изображениями — отрисовка
для фильтров делаешь "в лоб"
Posted via RSDN NNTP Server 1.9 gamma
LM Studio
Re: Photoshop
От: Fed Россия  
Дата: 27.09.04 16:50
Оценка:
Здравствуйте, Acid the Programmer, Вы писали:

ATP>Народ — хотелось бы обсудить тему того, как в фотошопе устроен ИХ менеджер памяти. Пока что у меня не получается придумать аналог, который работал бы с такойже скоростью. Есть какие-нибудь соображения?


Помимо тайлов Photoshop строит ещё пирамиды различных уровней детализации для быстрого отображения с раззличным масштабом. Для не очень больших картинок (10000х10000) можео попробовать использовать file mapping.

Рекомендую также посмотреть исходнки GIMP -там вроде также всё сделано через тайлы.
Спасибо,
Фёдор Скворцов.
Re[2]: Photoshop
От: Acid the Programmer http://boulder-dash.narod.ru
Дата: 28.09.04 07:01
Оценка: -1
Здравствуйте, Fed, Вы писали:

Fed>Здравствуйте, Acid the Programmer, Вы писали:


ATP>>Народ — хотелось бы обсудить тему того, как в фотошопе устроен ИХ менеджер памяти. Пока что у меня не получается придумать аналог, который работал бы с такойже скоростью. Есть какие-нибудь соображения?


Fed>Помимо тайлов Photoshop строит ещё пирамиды различных уровней детализации для быстрого отображения с раззличным масштабом. Для не очень больших картинок (10000х10000) можео попробовать использовать file mapping.


Fed>Рекомендую также посмотреть исходнки GIMP -там вроде также всё сделано через тайлы.


GIMP — смотрел. По скорости и оптимизации GIMP не в какое сравнение не идет с Фотошопом и работает в несколько раз тормознее. Одним словом Open Source — сами для себя делали. И так сойдет...
Re[11]: Photoshop
От: Reunion  
Дата: 29.09.04 12:36
Оценка:
Здравствуйте, LM, Вы писали:

LM>для фильтров не надо ничего мудрить: основные тормоза при работе с большими изображениями — отрисовка

LM>для фильтров делаешь "в лоб"

Погодите, погодите... Как это фильтры в лоб? Чтобы делать в лоб, его надо загрузить в оперативку. А как в 512 мег загрузить 1500 мег? Или есть другов "в лоб"?
Re[12]: Photoshop
От: LM Россия www.lmstudio.ru
Дата: 29.09.04 12:58
Оценка:
не...
ну тут прям недавно про проецируемые в память файлы говорили... вот их и надо использовать.
и, к тому же, это зачем фильтру надо сразу всю картинку? это должен быть фильтр, для которого изменение пикселя или небольшой группы пикселей основывается на информации обо *всех* остальных пикселях — это что за фильтр такой?
Posted via RSDN NNTP Server 1.9 gamma
LM Studio
Re[13]: Photoshop
От: Reunion  
Дата: 29.09.04 13:16
Оценка:
Здравствуйте, LM, Вы писали:

LM>не...

LM>ну тут прям недавно про проецируемые в память файлы говорили... вот их и надо использовать.
LM>и, к тому же, это зачем фильтру надо сразу всю картинку? это должен быть фильтр, для которого изменение пикселя или небольшой группы пикселей основывается на информации обо *всех* остальных пикселях — это что за фильтр такой?
Таких я не встречал, хотя может и есть. А вот когда для обработки одного пикселя требуется довольно большая область вокруг пикселя — такие есть.
Re[13]: Photoshop
От: .Mistery Беларусь  
Дата: 29.09.04 13:23
Оценка:
Здравствуйте, LM, Вы писали:

LM>не...

LM>ну тут прям недавно про проецируемые в память файлы говорили... вот их и надо использовать.
LM>и, к тому же, это зачем фильтру надо сразу всю картинку? это должен быть фильтр, для которого изменение пикселя или небольшой группы пикселей основывается на информации обо *всех* остальных пикселях — это что за фильтр такой?

Только нужно помнить, что если фильтр реализован в DLL, то сразу накладывается ограничение на использование проецируемых в память файлов, т.е. например замапить хотябы 256Мб уже неполучится!

Удачи всем!
... << RSDN@Home 1.1.3 beta 1 >>
Мы — маньяки, должны помогать друг другу!
Re[13]: Photoshop
От: Reunion  
Дата: 29.09.04 13:36
Оценка:
Здравствуйте, LM, Вы писали:

LM>не...

LM>ну тут прям недавно про проецируемые в память файлы говорили... вот их и надо использовать.
LM>и, к тому же, это зачем фильтру надо сразу всю картинку? это должен быть фильтр, для которого изменение пикселя или небольшой группы пикселей основывается на информации обо *всех* остальных пикселях — это что за фильтр такой?

На счет всех пикселей — не встречал, но есть фильтры, которым требуется довольно большая область для обработки одного пикселя (окрестность пикселя)
Re[14]: Photoshop
От: LM Россия www.lmstudio.ru
Дата: 29.09.04 13:36
Оценка:
ничего. я не думаю, что плагины будут использовать граф. данных боьше 256 Мб
Posted via RSDN NNTP Server 1.9 gamma
LM Studio
Re[13]: Photoshop
От: Acid the Programmer http://boulder-dash.narod.ru
Дата: 01.10.04 06:47
Оценка:
Здравствуйте, LM, Вы писали:

LM>не...

LM>ну тут прям недавно про проецируемые в память файлы говорили... вот их и надо использовать.
LM>и, к тому же, это зачем фильтру надо сразу всю картинку? это должен быть фильтр, для которого изменение пикселя или небольшой группы пикселей основывается на информации обо *всех* остальных пикселях — это что за фильтр такой?

Что значит использовать проецируемые файлы (в случае с изображениями)? Ведь с ними всеравно нужно работать окном, напимер по 100МГб. Но тогда файлы несколько не упростят программирование фильтров, т.к. придется самому отслеживать пересечение с границей окна и т.д., а в таком случае, это уже ничем не будет отличатся он любой другой НЕЛИНЕЙНОЙ организации памяти. В общем Photoshop не делает.
Я же хотелбы придумать способ работы с изображением похожий на файл подкачки, что бы Windows сама следила, есть память, нет ее, вышел ли фильтр за границу окна..... Такое можно сделать?
Re[14]: Photoshop
От: ivan_k Россия  
Дата: 01.10.04 08:07
Оценка:
Здравствуйте, Acid the Programmer, Вы писали:

ATP>Я же хотелбы придумать способ работы с изображением похожий на файл подкачки, что бы Windows сама следила, есть память, нет ее, вышел ли фильтр за границу окна..... Такое можно сделать?


Так в чем проблема? Делаешь класс Image, под которым тайловая структура. Фильтры и внешние клиенты работают с классом Image, как с немрерывной матрицей M x N (те они не подозревают о тайловой структуре, и никаких геморроев не испытывают), а Image уже сам поднимает данные для тайла из файла, когда к ним обращаются, и выгружает неиспользуемое. Писал такое, очень давно, для реализации БПФ при размере входа ок 265 МБ, а памяти — 64. Обработка по строкам, ессно, шла медленнее, чем при прямой загрузке файла в память, а по столбцам — на порядки быстрее.
Re[12]: Photoshop
От: Dimonka Верблюд  
Дата: 01.10.04 08:17
Оценка:
Здравствуйте, Reunion, Вы писали:

R>Погодите, погодите... Как это фильтры в лоб? Чтобы делать в лоб, его надо загрузить в оперативку. А как в 512 мег загрузить 1500 мег? Или есть другов "в лоб"?


Фотошоп и не показывает (на сколько я понимаю) тебе всю картинку в 1500 Mb , это и не зачем.. Он делает с неё превьюшку нужного размера и показывает превьюшку. При увеличении, ты всё равно не работаешь с полной картинкой, а только с её частью, поэтому тайлы в этом очень помогают. Но это всё только догадки пользователя.
Re[15]: Photoshop
От: Acid the Programmer http://boulder-dash.narod.ru
Дата: 01.10.04 08:58
Оценка:
Здравствуйте, ivan_k, Вы писали:

_>Здравствуйте, Acid the Programmer, Вы писали:


ATP>>Я же хотелбы придумать способ работы с изображением похожий на файл подкачки, что бы Windows сама следила, есть память, нет ее, вышел ли фильтр за границу окна..... Такое можно сделать?


_>Так в чем проблема? Делаешь класс Image, под которым тайловая структура. Фильтры и внешние клиенты работают с классом Image, как с немрерывной матрицей M x N (те они не подозревают о тайловой структуре, и никаких геморроев не испытывают), а Image уже сам поднимает данные для тайла из файла, когда к ним обращаются, и выгружает неиспользуемое. Писал такое, очень давно, для реализации БПФ при размере входа ок 265 МБ, а памяти — 64. Обработка по строкам, ессно, шла медленнее, чем при прямой загрузке файла в память, а по столбцам — на порядки быстрее.


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

Идея: например выделяю VirtualAlloc непрерывный кусок в памяти, обрабатываю структурны исключения при необходимости и подключаю новые страницы физической памяти если нужно (АВТОМАТИЧЕСКИ). Если страницы уже не нужны, то сам сбрасываю из на диск или в мапированный файл или еще кудато. Таким образом, я работаю как бы со всей картинкой, но процесс переключения происходит полностью АВТОМАТИЧЕСКИ. Впрос: Можно ли такое осуществить, или есть какие-то неизвестные мне нюанся и подводные камни?
Re[14]: Photoshop
От: LM Россия www.lmstudio.ru
Дата: 01.10.04 09:43
Оценка:
зачем следить за окнами при проецировании?
просто работаешь как с линейной памятью — главное, чтобы больше 256Мб не пытался вынуть за раз
Posted via RSDN NNTP Server 1.9 gamma
LM Studio
Re[15]: Photoshop
От: Acid the Programmer http://boulder-dash.narod.ru
Дата: 01.10.04 11:08
Оценка:
Здравствуйте, LM, Вы писали:

LM>зачем следить за окнами при проецировании?


Секундочку, а как еще.... или я не понял вашу идею.... можно поподробней или иначе объяснить?

LM>просто работаешь как с линейной памятью — главное, чтобы больше 256Мб не пытался вынуть за раз


Через класс как с линейной.. ? что-то не понял ..... если имеентся ввиду переопределить operator[] то каждый раз будет вызываться функция — будут медленно. Или както еще. Можно привести пример, как это должно примерно выглядеть?
Re[16]: Photoshop
От: LM Россия www.lmstudio.ru
Дата: 01.10.04 12:33
Оценка:
а ты с проецируемыми в память файлами работал?
они тем и хороши, что представляют всё как работу с линейной памятью, а всё "пагинацию" берут на себя
Posted via RSDN NNTP Server 1.9 gamma
LM Studio
Re[17]: Photoshop
От: Acid the Programmer http://boulder-dash.narod.ru
Дата: 01.10.04 12:54
Оценка:
Здравствуйте, LM, Вы писали:

LM>а ты с проецируемыми в память файлами работал?

LM>они тем и хороши, что представляют всё как работу с линейной памятью, а всё "пагинацию" берут на себя

Ну елки палки..... ну хоть кто-нибудь читает предыдущие сообщения..... Ну не дают проецируемые в память файлы линейного доступа к памяти без ОКНА. Файл ты проецируешь ЧАСТЯМИ к адресному окну ручками. А следовательно опять окно, опять следить за ним, опять руками переключать и все это будет в коде обработки изображения в том или ином виде. А мне хотелосьбы все это делать полностью автоматически. Как примерно я написал выше — через VirtualAlloc. И еще задал вопрос: можно ли так сделать теоритически?
Re[18]: Photoshop
От: LM Россия www.lmstudio.ru
Дата: 01.10.04 13:15
Оценка:
Да где ты там руками то работаешь???
Ты тогда код приведи чтоль! Я уже засношался объяснять!
Возьми и открой боооольшой файл на проекцию в память и фигач скока влезет — где ты там окно передвигаешь?
Posted via RSDN NNTP Server 1.9 gamma
LM Studio
Re[19]: Photoshop
От: Аноним  
Дата: 04.10.04 07:46
Оценка:
Здравствуйте, LM, Вы писали:

LM>Да где ты там руками то работаешь???

LM>Ты тогда код приведи чтоль! Я уже засношался объяснять!
LM>Возьми и открой боооольшой файл на проекцию в память и фигач скока влезет — где ты там окно передвигаешь?

Ну понял, понял что ты имел ввиду Тогда еще есть вопрос:
допустим у меня ОЗУ 100МГб а я проецирую на виртуальное адресное пространство 800МГб и напимер хочу сделать memset всем 800-ам.... как будет вести себя менеджер памяти в таком случае?
1. Он будет свопить в системный файл подкачки, а потом когда Unmap седалаю, скинет все на диск.
2. Страницы которые не влизают в оперативку будет по мере надобности в тот самый отмапленный файл писать.

Почему вопрос возник: попробовал дома, у меня 256 оперативки, так смапировал 400Мб и прошелся memset. И в результате очень уж мне показалось медленно операция прошла и диск мигал вааще капец просто... Можно ли как-ньть ускорить?
Re[20]: Photoshop
От: LM Россия www.lmstudio.ru
Дата: 04.10.04 10:09
Оценка:
Ты не забывай, что 256 оперативки это далеко не 256 физической свободной памяти... Было у тебя свободно физической мегов 50 — вот и получилось медленно
Быстрее вряд ли сделаешь — мапинг на уровне менеджера памяти системы поддерживается.
Posted via RSDN NNTP Server 1.9 gamma
LM Studio
Re[21]: Photoshop
От: Аноним  
Дата: 04.10.04 10:40
Оценка:
Здравствуйте, LM, Вы писали:

LM>Ты не забывай, что 256 оперативки это далеко не 256 физической свободной памяти... Было у тебя свободно физической мегов 50 — вот и получилось медленно

LM>Быстрее вряд ли сделаешь — мапинг на уровне менеджера памяти системы поддерживается.

Ладно, хрен с ними с тормозами... Так всетаки в предыдущем вопросе прозвучало:
1. Он будет свопить в системный файл подкачки, а потом когда Unmap седалаю, скинет все на диск?
2. Страницы которые не влизают в оперативку будет по мере надобности в тот самый отмапленный файл писать?

Мне очень важно получить ответ для понимания происходящего.
Re[22]: Photoshop
От: LM Россия www.lmstudio.ru
Дата: 04.10.04 14:08
Оценка:
1. Да, всё, что не умещается в физ. памяти располагается в виртуальной => своп-ся на диск. Но скидывает он на диск, вроде, не обязательно по unmap-у — когда сочтёт нужным (есессно, если файл был открыт на запись, а то екзепшн швырнёт). Кстати, при открытии только на чтение — вот здесь может быть увеличение скорости.
2. Тоже на усмотрение memory manager-а.

Вообще, я этим довольно давно занимался и тебе лучше обратиться в MSDN — посмотри просто описание основной ф-ии маппинга файла.
Posted via RSDN NNTP Server 1.9 gamma
LM Studio
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.