Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.09.26;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.038 c
1-1095136160
Faeton08
2004-09-14 08:29
2004.09.26
TPageControl


14-1094407069
mc-black
2004-09-05 21:57
2004.09.26
Delphi туториал


3-1093604914
Aleksandr.
2004-08-27 15:08
2004.09.26
Скажите, BDIInit надо вызывать в каждом потоке, работающем с БДЕ?


9-1085198433
lokid7
2004-05-22 08:00
2004.09.26
Книги по созданию игр в электронном виде


6-1090140794
Скив
2004-07-18 12:53
2004.09.26
Нажать "Submit"





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский