Вход на сайт
vista oder XP
05.09.07 21:34
Ветка закрыта 18.09.07 00:06 (игoрь)
NEW 06.09.07 13:39
в ответ SERGEJ JUNG 05.09.07 22:00
с таким компом виста будет быстрее.
причина очень проста - всем известно зверское потребление памяти вистой,
но не все знают зачем она ей, а виста делает одну очень простую работу -
сохраняет в памяти данные запущенных процессов и при повторном запуске
они загружаются гораздо быстрее
причина очень проста - всем известно зверское потребление памяти вистой,
но не все знают зачем она ей, а виста делает одну очень простую работу -
сохраняет в памяти данные запущенных процессов и при повторном запуске
они загружаются гораздо быстрее
Фашизм будет разбит
Человека карают только те боги, в которых он верит
NEW 06.09.07 15:21
в ответ gendy 06.09.07 14:32
архиваторы, текстовые редакторы, ехплорер
Время, уходящее на запуск (даже с диска) - ничтожно мало по сравнению со временем, затраченным на выполнение самого процесса. К тому же, то что только что было запущено, и так будет болтаться в оперативке (кэш), если памяти достаточно.
Время, уходящее на запуск (даже с диска) - ничтожно мало по сравнению со временем, затраченным на выполнение самого процесса. К тому же, то что только что было запущено, и так будет болтаться в оперативке (кэш), если памяти достаточно.
If something sounds too good to be true, it probably is (с)
NEW 06.09.07 16:25
в ответ gendy 06.09.07 15:31
Ээээ... Ты знаешь что такое "кэш" и как он работает в вынь? 
Очень грубо... Когда ты первый раз читаешь какой-то файл (будь это что угодно - программа или данные), он (при наличии места) попадает сначала в кэш (который, разумеется, является частью оперативки). Далее, даже когда ты закрыл файл (или программу) - оно вс╦ ещ╦ в памяти, и будет там, до тех пор пока место не понадобится для чего-то ещ╦. То есть, если у тебя 2 гига памяти, в кэше один гиг (он динамический), и программы не требуют для работы более чем (скажем) 500 мег (что довольно редко, если это не графика etc), то следующее обращение к тому же файлу (или программе) на диск уже не полезет (кроме, разумеется, случая когда нужно записать что-то туда). Так это работает почти во всех системах, включая старый добрый WinNT и Linux.
В висте они пошли чуть другим пут╦м, и сделали кэш, который заполняется после старта (prefetch), а не по мере обращения - но это помогает не очень сильно, если честно. Точнее, это помогает только в специфических случаях.

Очень грубо... Когда ты первый раз читаешь какой-то файл (будь это что угодно - программа или данные), он (при наличии места) попадает сначала в кэш (который, разумеется, является частью оперативки). Далее, даже когда ты закрыл файл (или программу) - оно вс╦ ещ╦ в памяти, и будет там, до тех пор пока место не понадобится для чего-то ещ╦. То есть, если у тебя 2 гига памяти, в кэше один гиг (он динамический), и программы не требуют для работы более чем (скажем) 500 мег (что довольно редко, если это не графика etc), то следующее обращение к тому же файлу (или программе) на диск уже не полезет (кроме, разумеется, случая когда нужно записать что-то туда). Так это работает почти во всех системах, включая старый добрый WinNT и Linux.
В висте они пошли чуть другим пут╦м, и сделали кэш, который заполняется после старта (prefetch), а не по мере обращения - но это помогает не очень сильно, если честно. Точнее, это помогает только в специфических случаях.
If something sounds too good to be true, it probably is (с)
NEW 06.09.07 16:44
в ответ WishWaster 06.09.07 16:25
красиво расписал, но неправильно.
нету там кеша никакого. кеш есть у процессора, у фестолаты, а у оперативки нет и быть не может.
каждый процесс имеет собственное динамическое адресное пространство , которое тут же убивается как только закрывается процесс.
и файлы грузятся в пространство определ╦нного процесса и другим процессам недоступны.
нужен файл другому процессу - он должен его полностью читать с фестплаты, ну может ещ╦ получит пару мб с кеша фестплаты
закрылся процесс - память тут же освободилась и ушла по запросам другим процессам. даже если запустить ещ╦ раз ту же программу
она получит другие блоки памяти независимо от того что было раньше. раньше в вин9х системную область делали общей, в НТ каждый процесс получает собственную
нету там кеша никакого. кеш есть у процессора, у фестолаты, а у оперативки нет и быть не может.
каждый процесс имеет собственное динамическое адресное пространство , которое тут же убивается как только закрывается процесс.
и файлы грузятся в пространство определ╦нного процесса и другим процессам недоступны.
нужен файл другому процессу - он должен его полностью читать с фестплаты, ну может ещ╦ получит пару мб с кеша фестплаты
закрылся процесс - память тут же освободилась и ушла по запросам другим процессам. даже если запустить ещ╦ раз ту же программу
она получит другие блоки памяти независимо от того что было раньше. раньше в вин9х системную область делали общей, в НТ каждый процесс получает собственную
Человека карают только те боги, в которых он
верит
Фашизм будет разбит
Человека карают только те боги, в которых он верит
NEW 06.09.07 17:48
в ответ gendy 06.09.07 16:44
нету там кеша никакого. кеш есть у процессора, у фестолаты, а у оперативки нет и быть не может.
Ну что я могу сказать? Только "мля!". Потому что речь про _системный_ кэш (а не оперативки), т.е. то что система _сама_ кэширует для ускорения доступа.
нужен файл другому процессу - он должен его полностью читать с фестплаты
Учи матчасть, ладно? Почитай на MSDN про то, как устроен Windows, файловая система, что такое system cache, а потом мы поговорим.
Ну что я могу сказать? Только "мля!". Потому что речь про _системный_ кэш (а не оперативки), т.е. то что система _сама_ кэширует для ускорения доступа.
нужен файл другому процессу - он должен его полностью читать с фестплаты
Учи матчасть, ладно? Почитай на MSDN про то, как устроен Windows, файловая система, что такое system cache, а потом мы поговорим.
If something sounds too good to be true, it probably is (с)
NEW 06.09.07 17:53
в ответ gendy 06.09.07 16:44
Вот почитай: http://dvoika.net/infor/teor/Glava%2010/Index18.htm - что бы общее представление получить.
If something sounds too good to be true, it probably is (с)
NEW 06.09.07 18:04
в ответ WishWaster 06.09.07 17:53
прочитай заголовок того что стоит в твоей ссылке
про дисковый кеш я знаю, но к процессам он отношения не имеет. делается только для того чтобы уменьшить количество обращений к дискам. сначала данные собираются в кеш а только потом сбрасываются на диск.
теперь давай ссылочку по кешу системы, куда складываются работающие программы
про дисковый кеш я знаю, но к процессам он отношения не имеет. делается только для того чтобы уменьшить количество обращений к дискам. сначала данные собираются в кеш а только потом сбрасываются на диск.
теперь давай ссылочку по кешу системы, куда складываются работающие программы

Фашизм будет разбит
Человека карают только те боги, в которых он верит
NEW 06.09.07 18:12
сначала данные собираются в кеш а только потом сбрасываются на диск.
Не только. Ты прочитай мою ссылочку. Он хранит также то, что было прочитано (а не только для сбрасывания) - как раз для минимизации обращений к диску.
теперь давай ссылочку по кешу системы, куда складываются работающие программы
Гы... Ну подумай сам... Программа это тот же файл, который попадает в дисковый кэш, перед тем как выполняется. Соответственно, второе обращение к ней же (как к _файлу_ - а это неизбежно _перед_ выполнением) полезет не на диск, а именно в память (системный кэш). Кстати, системный кэш не имеет отношения к дисковому - первый поддерживается системой (и независим от устройства), второй - зависим от устройства и весьма ограничен в объеме (а системный может занимать почти всю свободную память, он динамический). В статье речь именно про системный кэш, хотя называют они его дисковым.
PS: Поверь, я знаю о чём говорю - это моя область уже более чем 20 лет
Мне просто лень тут ликбезы устраивать, потому как всё уже миллион раз описано.
Не только. Ты прочитай мою ссылочку. Он хранит также то, что было прочитано (а не только для сбрасывания) - как раз для минимизации обращений к диску.
теперь давай ссылочку по кешу системы, куда складываются работающие программы
Гы... Ну подумай сам... Программа это тот же файл, который попадает в дисковый кэш, перед тем как выполняется. Соответственно, второе обращение к ней же (как к _файлу_ - а это неизбежно _перед_ выполнением) полезет не на диск, а именно в память (системный кэш). Кстати, системный кэш не имеет отношения к дисковому - первый поддерживается системой (и независим от устройства), второй - зависим от устройства и весьма ограничен в объеме (а системный может занимать почти всю свободную память, он динамический). В статье речь именно про системный кэш, хотя называют они его дисковым.
PS: Поверь, я знаю о чём говорю - это моя область уже более чем 20 лет

If something sounds too good to be true, it probably is (с)
NEW 07.09.07 11:05
в ответ WishWaster 06.09.07 18:12
Прочитал обоих - вс╦ понимаю... только вот один об одном, другой совсем о другом и оба правы, но по своему...
Давайте начн╦м с реестров (не системный реестер, а памятный), ячеек и обсудим подход ядра к контролю памяти с ассемблерной точки зрения. Про биос упустим, так как интеррупты нам только для запросов нужны. Что мы делаем на ассемблере когда разрабытываем? Ничего другого как работаем с интерруптами и памятными блоками, которыми "двигаем", грубо говоря. Например: я хочу показать картинку на экран, она занимает в адрессе ху оперативки какое то место, я беру этот "объект" и передвигаю в ОЗУ графики - вс╦ грубо говоря без динамических проверок. Так вот как только запускается программа (не важно что, хоть системный кадр какой), что с ней происходит - она адрессируется в реестр памяти и откладывается по ячейкам (так как без этого наш машинный код не работал ну никак) в ОЗУ - пока ещ╦ с "системным" кэшом ничего не произошло. Сейчас наша программа занимает место в памяти - назов╦м его спрайт. Происходит запуск. Системное ядро работает следующим пут╦м, после удачного выполнения и если кэш настроен (хоть в память или в диск), то происходит копирование (или как уже описано "сдвиг" нашего спрайта в выделенное место для системного кэша). Отсюда и пош╦л весь смысл винды и вообще подобной системы - системы копировальщика. Когда я делаю программу, то я сам могу, после выхода из не╦, решать совобождать спрайт из памяти или занимать дальше место. Практически я всегда убиваю это место (зачем систему грузить, ведь даже при новой загрузке будет создан новый спрайт или загружен из кэш системы, а не взят старый - что логично и ХП по другому не может, даже свои процессы она грузит в кэш).
Что сделали в Висте. Просто оставили спрайты на резиденцию и стали их контролировать (например приоритет системных процессов и т.д.) - и этим экономить запрос в кэш. Очень удобно для работы с большими файлами (где нужен эксплорер или его перезагрузка). Можно наблюдать после копирования большого файла, когда хрюша пытается перезагрузить свои же процессы из кэш системы, где вс╦ как бы "полз╦т".
К автору. На такой машинке можно и с Вистой поработать.
Давайте начн╦м с реестров (не системный реестер, а памятный), ячеек и обсудим подход ядра к контролю памяти с ассемблерной точки зрения. Про биос упустим, так как интеррупты нам только для запросов нужны. Что мы делаем на ассемблере когда разрабытываем? Ничего другого как работаем с интерруптами и памятными блоками, которыми "двигаем", грубо говоря. Например: я хочу показать картинку на экран, она занимает в адрессе ху оперативки какое то место, я беру этот "объект" и передвигаю в ОЗУ графики - вс╦ грубо говоря без динамических проверок. Так вот как только запускается программа (не важно что, хоть системный кадр какой), что с ней происходит - она адрессируется в реестр памяти и откладывается по ячейкам (так как без этого наш машинный код не работал ну никак) в ОЗУ - пока ещ╦ с "системным" кэшом ничего не произошло. Сейчас наша программа занимает место в памяти - назов╦м его спрайт. Происходит запуск. Системное ядро работает следующим пут╦м, после удачного выполнения и если кэш настроен (хоть в память или в диск), то происходит копирование (или как уже описано "сдвиг" нашего спрайта в выделенное место для системного кэша). Отсюда и пош╦л весь смысл винды и вообще подобной системы - системы копировальщика. Когда я делаю программу, то я сам могу, после выхода из не╦, решать совобождать спрайт из памяти или занимать дальше место. Практически я всегда убиваю это место (зачем систему грузить, ведь даже при новой загрузке будет создан новый спрайт или загружен из кэш системы, а не взят старый - что логично и ХП по другому не может, даже свои процессы она грузит в кэш).
Что сделали в Висте. Просто оставили спрайты на резиденцию и стали их контролировать (например приоритет системных процессов и т.д.) - и этим экономить запрос в кэш. Очень удобно для работы с большими файлами (где нужен эксплорер или его перезагрузка). Можно наблюдать после копирования большого файла, когда хрюша пытается перезагрузить свои же процессы из кэш системы, где вс╦ как бы "полз╦т".
К автору. На такой машинке можно и с Вистой поработать.
╘ Краткость - сестра Таланта.
NEW 07.09.07 11:11
в ответ weiser Fuchs 07.09.07 02:40
Так кому тут из вас верить-то? Продолжение дискуссии будет?
Мне верить, конечно
Ты ссылочку мою прочитай для начала, может, этого достаточно будет. Я могу рассказать, если мало будет. А
gendy, выдимо, таки покопался в гугле и понял что я не просто словами раскидываюсь 
Мне верить, конечно



If something sounds too good to be true, it probably is (с)
NEW 07.09.07 11:16
Только всё совсем наоборот. Зачем грузить кэш не зная, включен он или нет и работает моя программа ли вообще.
В ответ на:
Программа это тот же файл, который попадает в дисковый кэш, перед тем как выполняется.
Программа это тот же файл, который попадает в дисковый кэш, перед тем как выполняется.
Только всё совсем наоборот. Зачем грузить кэш не зная, включен он или нет и работает моя программа ли вообще.
╘ Краткость - сестра Таланта.
NEW 07.09.07 11:29
в ответ X-Freeday 07.09.07 11:16
Потому что так работает системный кэш - вс╦, что читается с диска - сначала попадает в кэш, если только приложение (или ОС) явно не хочет этого. Кэш "включен" всегда - он не может быть "выключен". Ещ╦ раз напомню - речь не про что-то, что в железе и именуется кэшем, речь про область памяти, используемую для кэширования самой системой. Раньше это называлось буферизацией, но теперь слово "буфер" уже не отражает всех процессов.
If something sounds too good to be true, it probably is (с)
NEW 07.09.07 11:40
в ответ WishWaster 07.09.07 11:29
Кэш ядро может вырубить и врубить и будет тебе прямой запрос на память. Я со стороны программера это говорю, а не с пользовательской.
Мне кажется, что ты подразумеваешь под кэшом всю рабочую область системы, где таже загрузка в ОЗУ (тво╦ копирование в кэш). Но тогда название кэш для такого подхода неуместно, так как всегда сначала загрузка в память -> работоспособно да нет -> кэш. Системное кэширование (откладка). Повторная загрузка - проверка суммы в кэше - > загрузка из кэша если да (если нет прямая загрузка) в память -> выполнение -> повторное кэширование.
Мне кажется, что ты подразумеваешь под кэшом всю рабочую область системы, где таже загрузка в ОЗУ (тво╦ копирование в кэш). Но тогда название кэш для такого подхода неуместно, так как всегда сначала загрузка в память -> работоспособно да нет -> кэш. Системное кэширование (откладка). Повторная загрузка - проверка суммы в кэше - > загрузка из кэша если да (если нет прямая загрузка) в память -> выполнение -> повторное кэширование.
╘ Краткость - сестра Таланта.
NEW 07.09.07 11:41
в ответ WishWaster 07.09.07 11:29
Как всё сложно. Я не знаю есть кэш, нету кэша. Только вот обратил внимание, что когда загружаешь программу в первый раз, то это происходит очень долго, но если закрыть, а потом загрузить по-новой, то это происходит почти мгновенно. Не думаю, что данные каждый раз грузятся с диска, скорее всего хранятся в оперативке и пока туда не положили ничего другого, очень объёмного, на которое не хватает оставшейся памяти, лежат там.
"Im Jahr der Wirren gehe nichtstreng mit dem Bruder ins Gericht.""Der Stille Don" M.Sch.
NEW 07.09.07 11:54
в ответ X-Freeday 07.09.07 11:40
Блин. Ну прочитай хотя бы статью, для начала. Могу тебе ещ╦ накидать материала, про внутреннее устройство ОС. А потом поговорим.
System cache - это _логическое_ понятие, а не _физическое_, это (грубо) просто область памяти, которая хранит то, что было (должно быть) на диске или любом другом медленном устройстве. Назови это буфером, если хочешь. Называется это кэшем потому, что используется для ускорения доступа. При╦м это термин, который используется разработчиками систем, а не мной придуманный для этого случая.
System cache - это _логическое_ понятие, а не _физическое_, это (грубо) просто область памяти, которая хранит то, что было (должно быть) на диске или любом другом медленном устройстве. Назови это буфером, если хочешь. Называется это кэшем потому, что используется для ускорения доступа. При╦м это термин, который используется разработчиками систем, а не мной придуманный для этого случая.
If something sounds too good to be true, it probably is (с)
NEW 07.09.07 12:24
Мы можем разговаривать, в статье ничего нового для меня нет.
Что ты называешь систем кэшом я уже понял, не знаю в какой области ты там 20 лет занимаешся, но комп и адрессация как были так и остались. Хоть как ты мне говори, потому что мне не раз приходилось писать системные приложения и адрессовать системный кэш - да да в логическом понятии. Где я мог указывать по умолчанию - кешировать, да нет, что и т.д.. Правильно, что понятие логическое, так как он может быть и на диске и в ОЗУ и управляется ядром системы по приоризации. Но загрузка идёт сначала в память - потому что иначе будет проблема с адрессацией в ядре, а потом копирование в кэш. Отсюда и весь смысл такой системы.
Просто подход или со стороны разработки или юзера. Но зачем засорять буфер, если машинный код не рабочий.
В ответ на:
Блин. Ну прочитай хотя бы статью, для начала. Могу тебе ещё накидать материала, про внутреннее устройство ОС. А потом поговорим.
Блин. Ну прочитай хотя бы статью, для начала. Могу тебе ещё накидать материала, про внутреннее устройство ОС. А потом поговорим.
Мы можем разговаривать, в статье ничего нового для меня нет.
Что ты называешь систем кэшом я уже понял, не знаю в какой области ты там 20 лет занимаешся, но комп и адрессация как были так и остались. Хоть как ты мне говори, потому что мне не раз приходилось писать системные приложения и адрессовать системный кэш - да да в логическом понятии. Где я мог указывать по умолчанию - кешировать, да нет, что и т.д.. Правильно, что понятие логическое, так как он может быть и на диске и в ОЗУ и управляется ядром системы по приоризации. Но загрузка идёт сначала в память - потому что иначе будет проблема с адрессацией в ядре, а потом копирование в кэш. Отсюда и весь смысл такой системы.
Просто подход или со стороны разработки или юзера. Но зачем засорять буфер, если машинный код не рабочий.
╘ Краткость - сестра Таланта.
NEW 07.09.07 12:37
в ответ X-Freeday 07.09.07 12:24
Но загрузка ид╦т сначала в память
Ну а кэш по твоему что - не память? Да, сначала оно попадает в память, в ту область которая и является кэшем. Потому уже попадает дальше - в пользовательский процесс. И если я снова обращаюсь (по чтению) к той же части файла, которая уже сидит в кэше (буфере), на диск система не полезет.
а потом копирование в кэш.
Зачем что-то куда-то копировать, если оно _изначально_ читается в кэш (или буфер - назови как угодно, который и так часть памяти)?
OK, спрошу иначе. Что такое filesystem cache тебе знакомо? Что происходит, когда ты открываешь файл и читаешь его? Что происходит когда ты выполняешь процесс? Что происходит (на всех уровнях), когда ты обращаешься к диску (напрямую или посредством файловой системы)?
Но зачем засорять буфер, если машинный код не рабочий.
Потому что файловой системе вс╦ равно, что ты прочитал и для чего - исполняемый файл или просто файл с данными.
Ну а кэш по твоему что - не память? Да, сначала оно попадает в память, в ту область которая и является кэшем. Потому уже попадает дальше - в пользовательский процесс. И если я снова обращаюсь (по чтению) к той же части файла, которая уже сидит в кэше (буфере), на диск система не полезет.
а потом копирование в кэш.
Зачем что-то куда-то копировать, если оно _изначально_ читается в кэш (или буфер - назови как угодно, который и так часть памяти)?
OK, спрошу иначе. Что такое filesystem cache тебе знакомо? Что происходит, когда ты открываешь файл и читаешь его? Что происходит когда ты выполняешь процесс? Что происходит (на всех уровнях), когда ты обращаешься к диску (напрямую или посредством файловой системы)?
Но зачем засорять буфер, если машинный код не рабочий.
Потому что файловой системе вс╦ равно, что ты прочитал и для чего - исполняемый файл или просто файл с данными.
If something sounds too good to be true, it probably is (с)
NEW 07.09.07 12:54
в ответ WishWaster 07.09.07 12:37
Да ты меня не понял, я абстрактно про копировать, сдвигать - для этого я уже писал выше, как это делается и для чего, физический сдвиг происходит только во время инициализации. Но функтионально он происходит и индексируется всегда.
Про файловую систему мне тоже не ново и логично что ей по барабану что ты там вычитал.
Про файловую систему мне тоже не ново и логично что ей по барабану что ты там вычитал.
╘ Краткость - сестра Таланта.
NEW 07.09.07 13:06
в ответ X-Freeday 07.09.07 12:54
Ну раз сам признаешь, что по барабану - то смотри что происходит:
- Ты пытаешься выполнить процесс;
- Содержимое файла процесса попадает в кэш файловой системы;
- Процесс выполняется или нет - не суть, он уже в памяти и останется там на некоторое время;
- Ты снова пытаешься запустить тот же процесс - система к диску не лезет, ибо он в кэше.
Вот и вс╦. Разумеется, фичи типа prefetch и superfetch делают это немного лучше и не особо зависят от свободной памяти, но если е╦ достаточно (т.е. то что попадает в кэш не вытесняется приложениями) то повторый запуск одного и того же процесса уже не включает в себя обращения к диску - соответственно, это происходит очень шустро.
- Ты пытаешься выполнить процесс;
- Содержимое файла процесса попадает в кэш файловой системы;
- Процесс выполняется или нет - не суть, он уже в памяти и останется там на некоторое время;
- Ты снова пытаешься запустить тот же процесс - система к диску не лезет, ибо он в кэше.
Вот и вс╦. Разумеется, фичи типа prefetch и superfetch делают это немного лучше и не особо зависят от свободной памяти, но если е╦ достаточно (т.е. то что попадает в кэш не вытесняется приложениями) то повторый запуск одного и того же процесса уже не включает в себя обращения к диску - соответственно, это происходит очень шустро.
If something sounds too good to be true, it probably is (с)
NEW 07.09.07 13:38
Поэтому я и сказал, что я понял что ты подразумеваешь под кэшом. Получается тоже самое, но у Висты для груженных сегментов используются другие алгоритмы по приоризации.
в ответ WishWaster 07.09.07 13:06
В ответ на:
- Ты пытаешься выполнить процесс;
- Содержимое файла процесса попадает в кэш файловой системы;
- Процесс выполняется или нет - не суть, он уже в памяти и останется там на некоторое время;
- Ты снова пытаешься запустить тот же процесс - система к диску не лезет, ибо он в кэше.
- Ты пытаешься выполнить процесс;
- Содержимое файла процесса попадает в кэш файловой системы;
- Процесс выполняется или нет - не суть, он уже в памяти и останется там на некоторое время;
- Ты снова пытаешься запустить тот же процесс - система к диску не лезет, ибо он в кэше.
Поэтому я и сказал, что я понял что ты подразумеваешь под кэшом. Получается тоже самое, но у Висты для груженных сегментов используются другие алгоритмы по приоризации.
╘ Краткость - сестра Таланта.
NEW 07.09.07 13:51
в ответ X-Freeday 07.09.07 13:38
Если интересны детали, они тут: http://members.rushmore.com/~jsky/id37.html
Но вс╦ это актуально только для тех, кто постоянно что-то запускает и закрывает, для большинства все эти оптимизации и прочая незаметны.
Но вс╦ это актуально только для тех, кто постоянно что-то запускает и закрывает, для большинства все эти оптимизации и прочая незаметны.
If something sounds too good to be true, it probably is (с)