Сейчас на форуме: Kybyx, user99 (+3 невидимых)

 eXeL@B —› Оффтоп —› Сколько возьмет в себя редактор?
Посл.ответ Сообщение

Ранг: 138.7 (ветеран), 135thx
Активность: 0.110
Статус: Участник

Создано: 26 мая 2013 20:27
· Личное сообщение · #1

Ув. господа, разгорелся спор, редактор (буть то HEX редактор, дизассемблер, блокнот) сразу всю инфу грузит или по размеру видимого окна
Если всю инфу, то непонятно как грузятся файлы over 4 гб когда памяти < 2 гб
Если грузит кусками по размеру видимого окна, опять не понятно, как при скроле окна всегда показываются нужные данные (скролим то быстро)




Ранг: 1053.6 (!!!!), 1078thx
Активность: 1.060.81
Статус: Участник

Создано: 26 мая 2013 20:32
· Личное сообщение · #2

проецирование же вроже есть



Ранг: 138.7 (ветеран), 135thx
Активность: 0.110
Статус: Участник

Создано: 26 мая 2013 20:39
· Личное сообщение · #3

reversecode
Однако возник спор, нужны аргументы хоть в ту хоть в другую сторону
Лично я склонен что современные редакторы хаваю сразу все, но как?




Ранг: 1053.6 (!!!!), 1078thx
Активность: 1.060.81
Статус: Участник

Создано: 26 мая 2013 20:43
· Личное сообщение · #4

проецирования сразу в память



Ранг: 138.7 (ветеран), 135thx
Активность: 0.110
Статус: Участник

Создано: 26 мая 2013 20:52
· Личное сообщение · #5

reversecode пишет:
проецирования сразу в память

Тут весь и срачь то идет из-за того, что ежели данные(файл) размером > оперативки




Ранг: 1053.6 (!!!!), 1078thx
Активность: 1.060.81
Статус: Участник

Создано: 26 мая 2013 21:07
· Личное сообщение · #6

говорят винда для этого использует своп
проецируется в память, используется память
а винда дальше на себя берет пейжд фаулты итд, для юзера это не заметно



Ранг: 138.7 (ветеран), 135thx
Активность: 0.110
Статус: Участник

Создано: 26 мая 2013 21:24
· Личное сообщение · #7

Но ведь точно же негрузит по размеру окна (как утверждают некоторые товарищи)
Кто в теме, отзовитесь, расскажите технику




Ранг: 2014.5 (!!!!), 1278thx
Активность: 1.340.25
Статус: Модератор
retired

Создано: 26 мая 2013 21:59
· Личное сообщение · #8

Скорее всего зависит от редактора. Проще отдизасмить предмет спора, и будет понятно.
Блокнот, походу, тупо читает весь файл в выделенную память и всё. Более продвинутый софт использует маппинг. Возможно с использованием AWE, тогда файл и больше 2/3/4 гб для х86 можно. А больше рамы файл и так всегда можно, и без маппинга, за счёт своппинга.



Ранг: 138.7 (ветеран), 135thx
Активность: 0.110
Статус: Участник

Создано: 26 мая 2013 22:27
· Личное сообщение · #9

Archer пишет:
Проще отдизасмить предмет спора, и будет понятно.

Да я думал, тут есть кто в теме.
Просто в HDasm загружаешь к примеру маленький и боольшой файлы и видна разница это с одной стороны
А если оперативы 512 мб а файло > 1 гб тут че как? тоже вроде все грузится




Ранг: 2014.5 (!!!!), 1278thx
Активность: 1.340.25
Статус: Модератор
retired

Создано: 26 мая 2013 22:31
· Личное сообщение · #10

Грузиться оно будет всегда. Даже при самом тупом способе с выделением памяти и чтением туда файла. Будет тупо свопаться и тормозить+вертеть хард, но не более того, работать будет. Тут узкое место-2/3/4 Гб для х86. Если мапить и юзать AWE, то и это ограничение можно обойти.




Ранг: 136.0 (ветеран), 360thx
Активность: 0.270.14
Статус: Участник
Qt Developer

Создано: 26 мая 2013 23:57
· Личное сообщение · #11

crc1 пишет:
Если грузит кусками по размеру видимого окна, опять не понятно, как при скроле окна всегда показываются нужные данные (скролим то быстро


Я тоже не понимал, пока не пришлось это реализовывать.

Куски по размеру окна читаются из файла быстро и быстрее чем скроллинг.

-----
http://ntinfo.biz




Ранг: 419.0 (мудрец), 647thx
Активность: 0.460.51
Статус: Участник
"Тибериумный реверсинг"

Создано: 27 мая 2013 07:28
· Личное сообщение · #12

У Notepad++ к примеру действует ограничение: файлы размером более 300 Мб категорически отказывается грузить.
В этом вопросе один нюанс есть: когда выполняется SetDlgItemText(SendMessage, SetWindowText) с уже заданных буфером, винда, по существу, еще раз выделяет память(по своему) и копирует себе строки из буфера(хорошо помню даже, когда с listbox в MS VC++ 6.0 MFC работал, в классе была функция резервирования памяти) И когда мы сами выделяем/проецируем память под буфер и после этого уже используем WinAPI для показа на экран.


 eXeL@B —› Оффтоп —› Сколько возьмет в себя редактор?

У вас должно быть 20 пунктов ранга, чтобы оставлять сообщения в этом подфоруме, но у вас только 0

   Для печати Для печати