Очень простой вопрос

Russian main discussion
Post Reply
  • Author
  • Message
Offline
Posts: 3
Joined: Wed Nov 21, 2018 3:29 pm

Очень простой вопрос

Post by macsunmood »

Добрый день. Хочу просто ответ на один очень простой вопрос:
хранит ли akelpad где-то, помимо буфера, содержимое временных/неназванных/несохраненных вкладок/файлов? При условии выключенного автосохранения .tmp-копии в директории в AutoSave (но включенном "Сохранять каждые 5 мин.")?

DV
Offline
Posts: 1250
Joined: Thu Nov 16, 2006 11:53 am
Location: Kyiv, Ukraine

Re: Очень простой вопрос

Post by DV »

macsunmood,
Скорее всего, что нигде не хранит.
Самый простой способ проверить это - принудительно завершить процесс AkelPad из Диспетчера задач или из Process Explorer. Затем запустить AkelPad и посмотреть, что будет. Скорее всего, несохранённые изменения будут утеряны, как и несохранённые вкладки.

Offline
Posts: 3
Joined: Wed Nov 21, 2018 3:29 pm

Re: Очень простой вопрос

Post by macsunmood »

DV wrote:macsunmood,
Скорее всего, что нигде не хранит.
Самый простой способ проверить это - принудительно завершить процесс AkelPad из Диспетчера задач или из Process Explorer. Затем запустить AkelPad и посмотреть, что будет. Скорее всего, несохранённые изменения будут утеряны, как и несохранённые вкладки.
Спасибо за ответ. Если ситуация такая, что непонятным образом оказались сброшены настройки AutoSave и резерные .tmp не делались, и после crash системы все временные заметки оказались утеряны, то вероятность их восстановления буквально нулевая и можно даже не пытаться что-то предпринимать? Или, все-таки, теоретически может быть надежда?
Disk Drill не нашел отдельных файлов, но было бы и нелогично. Но может ли буфер AkelPad'а быть где-то вроде системного кэша?

DV
Offline
Posts: 1250
Joined: Thu Nov 16, 2006 11:53 am
Location: Kyiv, Ukraine

Re: Очень простой вопрос

Post by DV »

Все несохранённые данные содержались только в оперативной памяти (RAM), так что при сбое системы они утеряны, к сожалению.
У меня ещё Windows 98 выработал привычку вручную сохранять файлы после каждого серьёзного изменения, а последнее время для временной информации я создаю файл temp.txt и его тоже периодически сохраняю вручную.
Как показал опыт разработчиков Notepad++, на автоматическое сохранение файлов тоже полностью полагаться нельзя, потому что вызов системной функции WriteFile на самом деле не пишет на физический диск напрямую, а помещает информацию в системный кеш, отвечающий за работу с физическим диском. Причём за этим системным кешом есть ещё дисковый кеш самого физического диска. И в некоторых случаях при завершении работы Windows информация из системного или дискового кеша не успевает записаться на физический диск до отключения питания. Такие дела.
По поводу системного и дискового кеша, в том же Notepad++ сейчас при открытии файла используется флаг FILE_FLAG_WRITE_THROUGH ( коротко об этом флаге тут: http://rsdn.org/forum/winapi/1664791.all ). Этот флаг не защищает от пропажи несохранённых данных в случае сбоя системы, но зато предотвращает заполнение нулевыми байтами файла, который был сохранён непосредственно перед сбоем системы.

Offline
Posts: 3
Joined: Wed Nov 21, 2018 3:29 pm

Re: Очень простой вопрос

Post by macsunmood »

DV wrote:Все несохранённые данные содержались только в оперативной памяти (RAM), так что при сбое системы они утеряны, к сожалению.
У меня ещё Windows 98 выработал привычку вручную сохранять файлы после каждого серьёзного изменения, а последнее время для временной информации я создаю файл temp.txt и его тоже периодически сохраняю вручную.
Как показал опыт разработчиков Notepad++, на автоматическое сохранение файлов тоже полностью полагаться нельзя, потому что вызов системной функции WriteFile на самом деле не пишет на физический диск напрямую, а помещает информацию в системный кеш, отвечающий за работу с физическим диском. Причём за этим системным кешом есть ещё дисковый кеш самого физического диска. И в некоторых случаях при завершении работы Windows информация из системного или дискового кеша не успевает записаться на физический диск до отключения питания. Такие дела.
По поводу системного и дискового кеша, в том же Notepad++ сейчас при открытии файла используется флаг FILE_FLAG_WRITE_THROUGH ( коротко об этом флаге тут: http://rsdn.org/forum/winapi/1664791.all ). Этот флаг не защищает от пропажи несохранённых данных в случае сбоя системы, но зато предотвращает заполнение нулевыми байтами файла, который был сохранён непосредственно перед сбоем системы.
Благодарю за подробный ответ и что делитесь опытом. Вы бы порекомендовали использовать notepad++ в качестве замены akelpad для лучшей сохранности информации? Сам пользуют akelpad скорее из исторических причин (давняя привычка), но n++ отталкивал всегда своей ориентированностью именно на разработку, чего мне не нужно от стандартного заметочника/замены блокноту.

Про данные, которые были в RAM понял, что бесполезно что-либо уже делать, раз они никак нигде не дублируются в кэше...

DV
Offline
Posts: 1250
Joined: Thu Nov 16, 2006 11:53 am
Location: Kyiv, Ukraine

Re: Очень простой вопрос

Post by DV »

Сам я в основном пользуюсь AkelPad, потому что он шустрый и "лёгкий", да и включает несколько очень удобных для меня плагинов.
Что касается вопроса сохранности данных - пожалуй, Notepad++ с его автосохранением сессии (включая неименованные файлы) будет более надёжным.
Post Reply