Порекомендуйте дефрагментатор RAM под Win x64

logan00108

Чтобы гигабайт 8-16 оперативки определял. Желательно Freeware.
Отстал я от этого сегмента софта. А в гугле всякая муть, либо 32-битные прожки.

klyv

чего-чего дефрагментировать?

logan00108

RAM. Видишь ли, некоторым программам уж очень хочется разместить в памяти массивчик гигов этак на 5 одним куском.

klyv

ы... а ОС этим не занимается?..
кстати, а что за ОС?

logan00108

Видимо не занимается, раз такие проги существуют. По крайней мере для Win XP. :) Или хреново занимается.
У меня ща Win Vista Business x64

stm4836248

OOCleverCache61ProfessionalEnu.exe

logan00108

OOCleverCache61ProfessionalEnu.exe
А это не про файл-кеш?

stm4836248

Ты поюзай ; )
Кстати, ошибсе с названием: OOCleverCache61Professional64Enu.exe

Dasar

Видимо не занимается, раз такие проги существуют. По крайней мере для Win XP. Или хреново занимается.
пример такой проги привести можешь?

juliuzz

Clever Cache — реальная штука
попробуй

agaaaa

А ничего, что все AMD64 ОСи используют механизм страничной памяти и потому им в принципе класть на то, фрагментирована физическая память или нет?

dgaf

>механизм страничной памяти
что это?

dgaf

Родной, афаик на всех архитектурах память разбита на страницы, это не какая-то особая фишка amd64. С фрагментацией памяти никак несвязано.
И, таки, да, управлением памятью должно заниматься ядро и никто другой.

agaaaa

С фрагментацией памяти никак несвязано.

Из-за трансляции адресов пропадает проблема фрагментации физической памяти.
Из-за 64 бит адреса пропадает проблема фрагментации виртуальной памяти.
Родной, афаик на всех архитектурах память разбита на страницы, это не какая-то особая фишка amd64.

И не надо писать всем известные вещи, когда они не имеют никакого отношения к теме. А то прочитал эту строку и создалось впечатление, будто я говорил, что механизм страничной памяти есть только на amd64. Нехорошо, однако, ой как не хорошо.

dgaf

на один запрос ядро/а (все?) отдаёт физически-непрерывный кусок памяти.
и опять, 64бит ардесации никак не связаны с проблемой фрагментации
вот, зацени у меня каких и сколько кусков памяти
DMA: 4*4kB 2*8kB 3*16kB 2*32kB 3*64kB 3*128kB 2*256kB 0*512kB 1*1024kB 1*2048kB 2*4096kB = 12496kB
Normal: 3878*4kB 962*8kB 205*16kB 30*32kB 0*64kB 4*128kB 1*256kB 1*512kB 0*1024kB 1*2048kB 1*4096kB = 34872kB
HighMem: 288*4kB 294*8kB 349*16kB 1320*32kB 1019*64kB 237*128kB 60*256kB 20*512kB 9*1024kB 5*2048kB 3*4096kB = 204224kB
а вот на свежезагруженной машине со страницами в 8кб
Normal: 3*8kB 2*16kB 1*32kB 2*64kB 2*128kB 1*256kB 2*512kB 1*1024kB 0*2048kB 2*4096kB 116*8192kB = 961240kB

agaaaa

> на один запрос ядро/а (все?) отдаёт физически-непрерывный кусок памяти.
Это ещё зачем? Где ты это вообще видел? Если специально не запрашивать не подкачиваемую память, ядро може выдавать какой угодно по форме кусок физической памяти и замапить его на непрерывный кусок виртуальной.
> и опять, 64бит ардесации никак не связаны с проблемой фрагментации
сложно забить мелкими кусками 2^64 байт памяти так, чтобы нельзя было 1GB непрерывный выделить. Для этого надо порядка 4*2^32 кусков
> вот, зацени у меня каких и сколько кусков памяти
заценил. у тебя крутые куски памяти

dgaf

и точно, наврал :)
значит, влияет только на скорость выделения памяти
>сложно забить мелкими кусками 2^64 байт памяти так, чтобы нельзя было 1GB непрерывный выделить. Для этого надо порядка 4*2^32 кусков
то есть чем больше память, тем её труднее фрагментировать?
вот как фрагментированность 3Г памяти будет зависеть от используемой адресации - 32, 36 или 64б ?

agaaaa

Ну представь себе, что у тебя есть виртуальная машина и на ней виртуальный диски размером 40ГБ, 320ГБ и 1ТБ. Ты записываешь на каждый из них 30ГБ, потом начинаешь создавать/удалять файлы оставаясь в пределах 40ГБ. Как думаешь, какой из дисков у тебя окажется фрагментированным раньше?

dgaf

>какой из дисков у тебя окажется фрагментированным раньше?
одинаково, при первом же удалении!
ты опять о своём
еще раз - объясни, как при использовании _одного_ (это когда один и тот же объём используется для всех измерений в серии) объёма памяти фрагментация зависит от ширины адресации.
я уже понял, что, имея большее количество памяти при выполнении одинаковых операций мы будем получать меньшую фрагментированность, спасибо, это я понял.

agaaaa

Мы можем замапать любой участок физической памяти на любой участок виртуальной. Более того, мы можем разобщённые участки физической памяти мапать на один участок виртуальной. Поэтому несмотря на то, что физическая память будет фрагментирована, мы не получим потерь производительности, т.к. фрагментация виртуальной памяти будет ничтожна (ведь её у нас 2^64 байт).
При этом выделение как и без фрагментации вообще будет происходит за O(N где N - число требуемых страниц (фактически эквивалентно объёму выделяемой памяти).
П.С. Вообще признаю, объяснять я не умею нормально.
Оставить комментарий
Имя или ник:
Комментарий: