Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.09.26;
Скачать: CL | DM;

Вниз

Как процедуре ограничить время, память, запись на диски?   Найти похожие ветки 

 
Ivanov_F. ©   (2004-09-08 11:20) [0]

У меня есть процедура, экспортированная из dll. Я ее вызываю из своей программы.
Мне нужно:
- заверщить ее работу через некоторое время, если она еще работает;
- ограничить занимаемую память;
- запретить запись на диски;
- отловить runtime error"ы.
DLLки пишу не я, они являются как бы входными данными в моей программе. Программа получает на вход DLL и должна вывести, правильно ли сработала процедура.
Если кто-нибудь знает, как сделать хоть что-нибудь из этого, ответьте, пожалуйста.


 
TUser ©   (2004-09-08 11:33) [1]

Вызывать ее в отдельном потоке. Прибивать TerminateThread"ом, если еще работаем. Остальное - не знаю.


 
Digitman ©   (2004-09-08 11:36) [2]


> правильно ли сработала процедура


и каковы же критерии оценки "правильности" ?


 
Ivanov_F. ©   (2004-09-08 11:51) [3]

2TUser: Это я сейчас и делаю, но мне нужно все делать в одном процессе.

2Digitman: Вот критерием правильности и является, то что она успела сработать за определенное время, не превысила память, не записала ничего на диск и вернула допустимое значение.


 
Digitman ©   (2004-09-08 12:00) [4]


> успела сработать за определенное время


какое конкретно время ? откуда оно взялось ? это конкретное время оговорено в ТЗ или где/кем ?


> не превысила память


опять же - с каким конкретным значением размера "памяти" ты собираешься сравнивать что-то на предмет "превышения" ? И - какой памяти ? физической ? виртуальной ? кучи ? стека ? или чего ?


 
TUser ©   (2004-09-08 12:07) [5]

> Это я сейчас и делаю, но мне нужно все делать в одном процессе.

Ну и хорошо. В одном процессе пара потоков.


 
Ivanov_F. ©   (2004-09-08 12:33) [6]

2Digitman: в программе задается некие константы TimeLimit и MemoryLimit, пока я расчитываю их оставить полсекунды и 32 мегабайта. Считается вся оперативная память, затраченная на процедуру.

2TUser: А если в каком-то потоке произойдет runtime-error, не накроется ли весь процесс. Как это можно отловить?


 
Семен Сорокин ©   (2004-09-08 12:36) [7]

Как это можно отловить?
try..except?


 
Digitman ©   (2004-09-08 12:52) [8]


> пока я расчитываю их оставить полсекунды и 32 мегабайта


эт что, значения взятые от балды ? на основании ЧЕГО эти самые "полсекунды" и "32 мегабайта" ?


> Считается вся оперативная память


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


 
Ivanov_F. ©   (2004-09-08 13:44) [9]

Спасибо за все! Я уже понял, как это все сделать. Последний вопрос: Как узнать объем памяти, которое занимает программа в памяти?


 
Digitman ©   (2004-09-08 14:25) [10]


> Ivanov_F. ©   (08.09.04 13:44) [9]


> Как узнать объем памяти, которое занимает программа в памяти?


считай что никак



Страницы: 1 вся ветка

Текущий архив: 2004.09.26;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.038 c
3-1093341693
ydv
2004-08-24 14:01
2004.09.26
запрос с помощью TADOCommand


6-1088926619
Kosmach
2004-07-04 11:36
2004.09.26
WebBrowser.OnNewWindow


1-1095069887
ORMADA
2004-09-13 14:04
2004.09.26
BPL


6-1085386955
r9000
2004-05-24 12:22
2004.09.26
Определение ip-адреса компьютера с которого приходят сообщения.


14-1094725109
stud
2004-09-09 14:18
2004.09.26
хороший программист 1С