[нестандартная задача C# :) ]Обращается ли прилож. к диску.
От: tealex  
Дата: 24.06.08 08:39
Оценка:
Кто помнит школьные интересные задачи

Дано :
COM SDK у которого есть функция Search( mas[] ), где mas[] — это массив файлов.

Функция работает быстро если этот массив находится в памяти полностью , но если массив не находится в памяти (не влезает) mas[] начинает использовать диск (считывать файлы).

Задача :

Сделать так что бы Search() работала быстро, но у SDK не существует информации о том находятся ли файлы в памяти или нет, можно использовать только косвенные методы.

Решение:

Нужно вызвать функцию Search() и посмотреть обращается ли приложение к диску....Как это сделать.

Было замеченно что в task manager есть колонка "I/O Reads Bytes" которая показывает что читает и она действительно показывает правильно, что когда вызываешь функцию Search() если файлов слишком много то значение "I/O Reads Bytes" начинает увеличиваться и не увеличивается если файлы в памяти.

Ещё предложения есть ? )
хана
Re: [нестандартная задача C# :) ]Обращается ли прилож. к дис
От: tealex  
Дата: 24.06.08 08:42
Оценка:
Здравствуйте, tealex, Вы писали:

T>Кто помнит школьные интересные задачи


T>Дано :

T>COM SDK у которого есть функция Search( mas[] ), где mas[] — это массив файлов.

T>Функция работает быстро если этот массив находится в памяти полностью , но если массив не находится в памяти (не влезает) mas[] начинает использовать диск (считывать файлы).


T>Задача :


T>Сделать так что бы Search() работала быстро, но у SDK не существует информации о том находятся ли файлы в памяти или нет, можно использовать только косвенные методы.


T>Решение:


T>Нужно вызвать функцию Search() и посмотреть обращается ли приложение к диску....Как это сделать.


T>Было замеченно что в task manager есть колонка "I/O Reads Bytes" которая показывает что читает и она действительно показывает правильно, что когда вызываешь функцию Search() если файлов слишком много то значение "I/O Reads Bytes" начинает увеличиваться и не увеличивается если файлы в памяти.


T>Ещё предложения есть ? )


Как я понял "I/O Reads Bytes" это

функция WinApi

BOOL WINAPI GetProcessIoCounters(
__in HANDLE hProcess,
__out PIO_COUNTERS lpIoCounters
);

typedef struct _IO_COUNTERS {
ULONGLONG ReadOperationCount;
ULONGLONG WriteOperationCount;
ULONGLONG OtherOperationCount;
ULONGLONG ReadTransferCount;
ULONGLONG WriteTransferCount;
ULONGLONG OtherTransferCount;
} IO_COUNTERS,
*PIO_COUNTERS;
хана
Re: [нестандартная задача C# :) ]Обращается ли прилож. к дис
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 24.06.08 12:44
Оценка:
Здравствуйте, tealex, Вы писали:

T>Ещё предложения есть ? )


http://rsdn.ru/Info/Howtoask.xml
... <<RSDN@Home 1.2.0 alpha 4 rev. 1090 on Windows Vista 6.0.6001.65536>>
AVK Blog
Re[2]: [нестандартная задача C# :) ]Обращается ли прилож. к
От: tealex  
Дата: 24.06.08 13:32
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>Здравствуйте, tealex, Вы писали:


T>>Ещё предложения есть ? )


AVK>http://rsdn.ru/Info/Howtoask.xml


я так много не читаю )
хана
Re[3]: [нестандартная задача C# :) ]Обращается ли прилож. к
От: Sinclair Россия https://github.com/evilguest/
Дата: 27.06.08 04:42
Оценка: +1 :)
Здравствуйте, tealex, Вы писали:
T>я так много не читаю )
Тогда тебе не нужен ответ.
... << RSDN@Home 1.2.0 alpha rev. 677>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re: [нестандартная задача C# :) ]Обращается ли прилож. к дис
От: Ник  
Дата: 30.06.08 18:46
Оценка:
T>Задача :
T>Сделать так что бы Search() работала быстро, но у SDK не существует информации о том находятся ли файлы в памяти или нет, можно использовать только косвенные методы.
Я что-то не понял. Вот запустил ты Search(), согласно своему решению определил факт того, что она начала с диска файлы читать, дальше что? Прерываешь её? Она от этого не начинает быстро работать, так что само обнаружение факта считывания с диска — это ещё не решение.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.