metaclass: (Default)
[personal profile] metaclass
Насколько я помню, винда кэширует обращения к диску. В таком случае вопрос: почему сделать еще один кэш, загрузку в него из файла блоками, кратными размеру кластера и читать мелкие объекты из него получается быстрее чем читать их же напрямую?

Date: 2007-12-24 11:06 pm (UTC)
From: [identity profile] 1ceheart.livejournal.com
Ну, тому есть тысяча причин, но основные две. Во-первых, накладные расходы при вызове ReadFile, даже если все - в кэше, они не просто большие, они титанические. Это ж надо создать IRP, потом его долго и мучительно обрабатывает FSD, потом это долго и мучительно передается по стеку, и только потом дело дойдет до кэша и начнет тем же путем передаваться обратно.

Вторая проблема в том, что кэш - штука негарантированная, и закэшенную страничку винды могут внезапно взять и порешить использовать под что-то более, с их точки зрения, важное. Если же выделить себе память в user space, ее никто никогда под что-нибудь другое не заюзает (ну, конечно, если не считать своп, но в современном мире можно считать, что его нет).

Profile

metaclass: (Default)
metaclass

April 2017

S M T W T F S
      1
2345678
9101112 131415
16171819202122
23242526272829
30      

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Aug. 10th, 2025 10:00 pm
Powered by Dreamwidth Studios