Автоматическое удаление временных объектов

Общие вопросы программирования, алгоритмы и т.п.

Модератор: Модераторы

Re: Автоматическое удаление временных объектов

Сообщение Лекс Айрин » 12.07.2017 09:43:46

pda писал(а):Опционально.


Нет! Как раз таки обязательно, так как не проверяя ты делаешь программу ненадежной и тормозной.
pda писал(а): И что интересно вы сделаете, если FileExists вернёт Flase?


Просто не запущу функцию распаковки и выброшу окошко "исходный файл не найден".

pda писал(а):Потому что это двойная проверка. Ведь WinAPI/libc её всё равно выполнит.

угу... выкинет исключение и закроет потом программу? Шикарно...

pda писал(а): И у вас 4-гигагерцовый многоядерный монстр, а не Pentium 100.


Это у ВАС 4-гигагерцовый проц. У меня этот комп, самый мощный, работает под Dual Core E5200 (2.5). И работает в достаточно жестком режиме.

pda писал(а):А какой у вас стаж?


Небольшой как программиста. Большой как аникея.

pda писал(а): Мне просто интересно, на сколько грабель вы наступили?


Почти на все вышеперечисленные. Причем, и как программист, и как аникей.

pda писал(а): Я сейчас пойду передам ядру системы чтобы никаких левых ошибок там не было.


Я подробно указал, что речь о процессах инициированных самой программой. Да и если используется глючное ядро, то это не проблемы программиста.

pda писал(а):Мы в многозадачной среде. Пока вы на 1000% убедились, что есть файл, есть права, есть свободное место, ожил соседний процесс и снёс ваш файл и съел всё свободное место. И что теперь?


Ну... прокладка между клавой и креслом не в нашей власти. Так что тут помогут только драйвера Head и GoldHands.

И, если уж на то пошло, файл надо открывать/создавать сразу после проверки.

pda писал(а): Если уж она открыла файл - значит открыла.


Наивность поражает -- я лично сносил запущенный вирус унлокером. Правда, при этом система ребутилась, но файл удалить успевала.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 4093
Зарегистрирован: 19.02.2013 16:54:51

Re: Автоматическое удаление временных объектов

Сообщение Cheb » 12.07.2017 10:34:40

И, если уж на то пошло, файл надо открывать/создавать сразу после проверки.

Вот это вот "сразу" выдаёт устрашающую наивность.
Не бывает никакого "сразу" в многозадачной среде, если только все процессы не используют совместно один и тот же семафор.

Добавлено спустя 1 минуту 51 секунду:
З.Ы. И вся работа с файлом должна быть завёрнутв в try. Сетевой диск, мышка бежала, хвостиком махнула - Ethernet кабель и выдернулся...
Аватара пользователя
Cheb
энтузиаст
 
Сообщения: 590
Зарегистрирован: 06.06.2005 15:54:34

Re: Автоматическое удаление временных объектов

Сообщение olegy123 » 12.07.2017 10:49:46

Лекс Айрин, в Dual Core E5200 (2.5) могут встречаться разные ошибки, за одну секунду их может быть сотня.. Их можно разглядеть в диспетчере задач.
Только сначала возьми фронтовые 300г, а мы тут боимся, что после увиденного в запой уйдешь.
Так вот бэды в компьютере есть всегда.. на всех этапах.. на вычисление, на записи, на чтении.. на передачи.. Если бы не было контрольных сумм, если не придумали высокую степень аппаратной помехоустоячевости.. то любая программа сводилась к тому чтобы делать тесты.
Лично я работал с одним компом, который вел себя очень странно - в винде хотел разные файлы, которые в названии были mac.. macintosh.. После полдня такой работы - я стал думать что у меня крыша Ту-ту..
Решил раз мака у меня нет - на, держи линуху. Вот линух мне сразу сказал - друг, сей девайс имеет аппаратный баг. И тестом выявился битый пиксел не у меня в голове а у компа в памяти.
Еще был случай когда принтер поменял свою ориентацию.. я не HP, зови меня Apollo, хотя на крышке его были HP.. на винде драва сразу слетели, и родные драйвера на CD не setup-лись.

Добавлено спустя 6 минут 38 секунд:
Еще подрабатывал ремонтом HDD - видел реальные таблицы в чипах.. так вот, у производителей нет ХДД без бэдов.. Даже нулевый диск в заводской упаковки уже имеет кучу бэдов.. Даже у некоторых блины отключены..
А что говорить про процики..
olegy123
энтузиаст
 
Сообщения: 721
Зарегистрирован: 25.02.2016 12:10:20

Re: Автоматическое удаление временных объектов

Сообщение pupsik » 12.07.2017 11:31:47

Ведь WinAPI/libc её всё равно выполнит.
на систему надейся, а сам не плошай. Юзверу пофик кто и как. Ведь он запустил вашу программу и она "сложилась".
И у вас 4-гигагерцовый многоядерный монстр, а не Pentium 100.
а юзвер купил сие поделие только из-за вашего софта? Вот почему никого не интересует зачем у пользователя такая начинка? Все надеются что персонально для их софта...

olegy123 бэки/шмеки и т.д... И зачем это на уровне пользования софтом? Если программист не учёл то....

Ну: сделал pda полезную для себя штуку, поделился... Мнения могут не совпадать, и...? Лучше уж улучшить помогли чем, а не сраться с наездами.

п.с.
А остальное: производители "качественной" аппаратуры жрать то же хотят. Как и многие иные.
pupsik
энтузиаст
 
Сообщения: 1009
Зарегистрирован: 20.08.2014 16:20:13

Re: Автоматическое удаление временных объектов

Сообщение Лекс Айрин » 12.07.2017 12:17:28

Cheb писал(а):Не бывает никакого "сразу" в многозадачной среде, если только все процессы не используют совместно один и тот же семафор.


Понятное дело.

Добавлено спустя 1 час 17 минут 7 секунд:
Cheb писал(а): И вся работа с файлом должна быть завёрнутв в try.


В один.

olegy123 писал(а):Только сначала возьми фронтовые 300г, а мы тут боимся, что после увиденного в запой уйдешь.


Не волнуйся, за 39 лет я многое видал... например, взрывающийся компрессор.

pda писал(а): Соседний процесс открыл слишком много файлов (а в Windows их всего 16384 на сессию). Через пару минут его отпустит. Но вот прямо сейчас никто в этой сессии не может открыть ни одного файла. Что прикажете переписывать?

Если от этого сервис сложится, то да.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 4093
Зарегистрирован: 19.02.2013 16:54:51

Re: Автоматическое удаление временных объектов

Сообщение olegy123 » 12.07.2017 22:34:11

pupsik писал(а):И зачем это на уровне пользования софтом? Если программист не учёл то....

Я о чем: если бы этого не было, то любой "Hello world" превращался в кучу проверок.

pupsik писал(а):Ну: сделал pda полезную для себя штуку, поделился... Мнения могут не совпадать, и...? Лучше уж улучшить помогли чем, а не сраться с наездами.

Пускай делает, кто ему мешает? Просто разговор о том, что не все.
Как пример: у меня была задача где элементы могли иметь общий ресурс. Там был подсчет ссылок - оно работало.. но до тех пор, когда возник вопрос о глобализации ресурса. То есть, когда у ресурса ноль владельцев.
olegy123
энтузиаст
 
Сообщения: 721
Зарегистрирован: 25.02.2016 12:10:20

Re: Автоматическое удаление временных объектов

Сообщение pupsik » 12.07.2017 23:14:45

то любой "Hello world" превращался в кучу проверок
ну..у, как бы, тема развивалась не о Hello world...

...когда возник вопрос о глобализации ресурса
значит не учли "мелочь"... Т.е.: бывает... Много чего бывает. Но это не касаемо данной темы.

п.с.
Персонально для себя не вижу необходимости в данной наработке. Разве что на раннем этапе (для наброска). Но, далее, с наростом мышцы... чиститься будет... Да и, по старинке "стандартов" паскаля хватает. Ну и свои велики ближе и проще "крепятся".
pupsik
энтузиаст
 
Сообщения: 1009
Зарегистрирован: 20.08.2014 16:20:13

Re: Автоматическое удаление временных объектов

Сообщение Лекс Айрин » 13.07.2017 09:38:38

olegy123 писал(а):если бы этого не было, то любой "Hello world" превращался в кучу проверок.


А он и превращается... но только на уровне библиотеки lcl(fcl). Именно из-за этого, в том числе, код так разбухает если использовать Lazarus/
olegy123 писал(а): То есть, когда у ресурса ноль владельцев.

Это можно решить просто. Если ресурс должен существовать всегда, то его первым владельцем должен стать процесс типа system (фиктивный пользователь). Если нет, то он уничтожается.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 4093
Зарегистрирован: 19.02.2013 16:54:51

Пред.

Вернуться в Общее

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2

Рейтинг@Mail.ru
cron