Форум: "Основная";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.03.28;
Скачать: [xml.tar.bz2];




Вниз

Отладка в условиях нехватки ресурсов 


Sam3D   (2002-03-13 14:37) [0]

Уважаемые мастера. Не подскажите ли вы, где можно достать программу, которая позволяла бы имитировать работу системы в условиях нехватки машинных ресурсов. Я слышал, что подобная разработка (называется что-то вроде Stress-Up) входит в комплект Visual Studio, но, по ряду причин, она недоступна.
В частности, хотелось бы протестировать работу своей программы при недостатке оперативной памяти.
Либо, если у кого-то есть соображения относительно подхода к решению данной задачи средствами Delphi, буду очень признателен за помощь.
Заранее благодарю.



Fellomena   (2002-03-13 15:56) [1]

Код на VFortran6.1.0 (писала как раз для забивания оперативы и увеличения win386.swp + активный пэйджинг через своп - комп был правда с 64Mb оперативы :)

!исходная ф-ия, минимизируемая в методе дихотомии
FUNCTION func(x)
func = log(1+x)*(x**2-4)*(x-5)+(x**(x))
return
end function func

!метод одномерной минимизации - метод дихотомии
subroutine DIHOTOMIA(a, b)

!исходные данные
real a, b, eps, d
!данные для вычислений (x - конечное значение минимума)
integer k
real x1, x2, x

!инициализация входных данных
!a = 0
!b = 12345630000.5
eps = 0.001
d = 0.000001

k = 1
1 if (abs(b-a).LE.eps) go to 7
x1 = (a+b-d)/2
x2 = (a+b+d)/2
if (func(x1).LE.func(x2)) go to 5
a = x1

2 k = k+1
go to 1

5 b = x2
go to 2

7 x = a

! Вывод результатов
!print *, "Method DEHOTOMIA - zero level method of optimization."
!print *, x

return

end subroutine




program RANDOM2

USE DFPORT
implicit none

! Variables

integer i, j
real a(20E+6), b(20E+6), d(20E+6), k, temp, count
REAL(8) elapsed_time
real func

! Body of RANDOM2
count = 20E+6
print *, "Waiting for array to be formated..."

! заполнение массива типа real псевдо-случайными числами
DO j = 1, count
call RANDOM_NUMBER(k)
a(j) = k*100
b(j) = k+123
d(j) = k
!print *, a(j), j
end do

print *, "Testing CPU... Please wait..."

! инициализация таймера отсчёта времени
elapsed_time = TIMEF( )

! Сортировка методом пузырька массива типа real размером 20E+3
DO i = 1, 50E+3
DO j = 1, 50E+3
if (a(i).LE.a(j)) then
temp = a(i)
b(j) = a(j)
a(i) = a(j)
d(j) = a(i)
d(i) = b(j)
a(j) = temp
endif
END DO
b(i) = a(i)
END DO

!Метод одномерной минимизации - метод дихотомии/ a и b - значения, полученные от
!сортировки пузырьком и явл. границами отрезка поиска минимума
call DIHOTOMIA(a(1), a(count))

! остановка таймера
elapsed_time = TIMEF( )

! начало вывода результатов в файл BubleF.res
OPEN (1, FILE = "BubleF.res")

WRITE (1, *) "VisualFortran 6.1.0"
WRITE (1, *) "Options: none"
WRITE (1, *) "Randomization array [1..20000] of real"
WRITE (1, *) "Uses method DEHOTOMIA to minimize function"
WRITE (1, *) "Result: First number: ", a(1)
WRITE (1, *) "Last number: ", a(count)
WRITE (1, *) "Time = ", elapsed_time


CLOSE(1)
! конец вывода результата в файл BubleF.res

print *, "Work complete ! Result in BubleF.res "

!DO i = 1, 10E+4
!print *, a(i)
!ENDDO

! Пауза
read(*, *)
end program RANDOM2


Программа бестолковая, но своё дело делает.
Увеличив настроечные параметры циклов можно добиться более продолжительного времени её работы.
Переложить на Паскаль или С - никаких проблем imho



fag2000@ok.ru   (2002-03-13 17:40) [2]

Под NT/2000 просто:
Поставь своей проге самый низкий приоретет, а какой нибудь другой самый высокий. Вторая прога сожрёт все ресурсы.
Причем ёё можно сделать совсем прстой (типа выделил память под массив, записал туда случайные числа, очистил память).
Забить память проблем нет никаких. Выделяй блоки с помощью getmem и не освобождай.



Sam3D   (2002-03-15 09:34) [3]

>Fellomena, fag2000@ok.ru
Спасибо!




Форум: "Основная";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.03.28;
Скачать: [xml.tar.bz2];




Наверх





Память: 0.73 MB
Время: 0.017 c
1-90853           kull                  2002-03-16 20:36  2002.03.28  
тестирование...


1-90916           MegaVolt              2002-03-13 14:34  2002.03.28  
Преобразование из виндяшной кодировки в DOS


1-90919           Andrey__              2002-03-18 17:13  2002.03.28  
Не устанавливается Delphi !!!


1-90830           Lego                  2002-03-16 02:25  2002.03.28  
Как добавить в Edit только имя выбранного файла, а не полный путь и имя файла?


1-90845           Di_wind               2002-03-16 16:16  2002.03.28  
Как вчтроить некоторые данные в программу?