:: Архив конференции по VFP до 2005 года
Re: Принудительный сброс данных из памяти на диск
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
Hi, Saratoga!

Да, они сидят в буфере ОС, и выпихнуть их оттуда можно лишь "новой" FLUSH
(той что в VFP9 таки "починили") ну или через АПИ, но там есть свои
нюансы...

P.S. Сегодня пользоваться SCATTER/GATHER как-то нехорошо - есть буферизация
которая делает в принципе то-же самое, но немного лучше и проще Хотя к
описываемой проблеме это не имеет никакого отношения.




------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: Принудительный сброс данных из памяти на диск
Hel!Riser

Сообщений: 10452
Откуда: Нижний Новгород
Дата регистрации: 11.03.2001
FLUSH был хорош на FPD без сети. ибо сервера фс:е равно даные кешировали - т.е сами у себя на уме А как работает 1104 собсна вопрос к разработчикам Выня имхо. Ибо где-то раньше я или слышал или читал, то как раз на ней и висела WriteBuffer




------------------
Осторожно - глисты!
Ratings: 0 negative/0 positive
Re: Принудительный сброс данных из памяти на диск
piva

Сообщений: 18655
Откуда: Курган
Дата регистрации: 24.03.2004
Самый надежный способ сбросить данные на диск это после Gather просто написать USE и отключить таблицу




------------------
Часто бывает так, что есть над чем задуматься, а нечем.
Ratings: 0 negative/0 positive
Re: Принудительный сброс данных из памяти на диск
piva

Сообщений: 18655
Откуда: Курган
Дата регистрации: 24.03.2004
Денис sys(1104) просто освобождает внутренний кэш фокса в который попадают данные при работе с таблицами и sql запросами. Особенно это заментно с большими запросам с большими выборками - просто фокс освобожадет память нахапанную у виндузы. А для таблиц это особенно заментно при использовании одной таблицы для двух экземпляров формы. Если Вадим Циганков (Combat) не полениться найти тот пример который работал только с использованием sys(1104) - то можно в этом убедится.




------------------
Часто бывает так, что есть над чем задуматься, а нечем.
Ratings: 0 negative/0 positive
Re: Принудительный сброс данных из памяти на диск
Combat

Сообщений: 816
Откуда: Клайпеда
Дата регистрации: 26.10.2000
piva
пример который работал только с использованием sys(1104)
Пример снёс за ненадобностью, а функция в то время была не документированная...
Помог ты мне здорово тогда.




------------------
Ratings: 0 negative/0 positive
Re: Принудительный сброс данных из памяти на диск
piva

Сообщений: 18655
Откуда: Курган
Дата регистрации: 24.03.2004
Жаль - хорошая была демонстрация использования именно sys(1104) главное наглядная




------------------
Часто бывает так, что есть над чем задуматься, а нечем.
Ratings: 0 negative/0 positive
Re: Принудительный сброс данных из памяти на диск
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
Hi, piva!

Не поможет Фокс то свой буфер сбросит (он и по FLASH его сбрасывает) а
вот ОС - не факт.
Да и такая работа с таблицами неслабо напрягает - это ж всё кодировать надо





------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: Принудительный сброс данных из памяти на диск
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
Hi, Hel!Riser!

Цитата:
FLUSH был хорош на FPD без сети
Ага, и под собственно DOS-ом
Цитата:
А как работает 1104 собсна вопрос к разработчикам Выня имхо
Windows не имеет к этому ровно никакого отношения - это функция сброса
ФОКСОВЫХ кэшей - т.е. в частности фокс не читает постоянно данные с диска, а
считав один раз при всех дальнейших обращениях возвращает данные из этого
кэша. Это легко увидеть, если запустить параллельно 2 процесса - один будет
писать скажем каждые 0.1 секунды новые данные в таблицу, а другой столь-же
часто их оттуда считывать - и мы увидим, что "обновляться" данные будут 5-ти
секундными интервалами (т.е. 5 секунд будет считываться одно и то-же
значение, следующие 5 секунд другое и т.д.) Эти 5 секунд - настройка SET
REFRESH x, 5 - т.е. второй параметр.
И вот как раз SYS(1104) и позволяет "сбросить" этот кэш и считать с диска
свежие данные.
В VFP9 улучшили SET REFRESH (можно даже вообще отключить кэш и данные ВСЕГДА
будут с диска считываться - ну точнее из кэша ОС, а он работает по иным
алгоритмам и в принципе всегда актуален), а также исправили застарелый баг -
то что непосредственно USE ... AGAIN НЕ сбрасывали кэш (т.к. кэш он в фоксе
один на все открытые копии таблицы) и получалось что там "устаревшие"
данные - ибо обновление откладывалось на те-же 5 секунд...
А к ЗАПИСИ этот SYS() отношения AFAIK не имеет - там FLUSH рулит...




------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: Принудительный сброс данных из памяти на диск
piva

Сообщений: 18655
Откуда: Курган
Дата регистрации: 24.03.2004
И еще после USE КОРРЕКТНО завершать работу виндузы




------------------
Часто бывает так, что есть над чем задуматься, а нечем.
Ratings: 0 negative/0 positive
Re: Принудительный сброс данных из памяти на диск
Penner

Сообщений: 4102
Откуда: Muenster
Дата регистрации: 26.04.2002
Все это от лукавого
Электриков надо пинать, блоки бесперебойного питания ставить, делать отдельную эл.проводку для компов....
Ratings: 0 negative/0 positive


Извините, но у вас нет прав для того, чтобы оставлять сообщения в этом форуме.

On-line: 7 (Гостей: 7)

© 2000-2024 Fox Club 
Яндекс.Метрика