I want to test a program's memory management capabilities, for example (say, program name is director)
I'll be doing these experiments on a Unix machine. One way is to limit the amount of memory available to the process using ulimit
, but there is no good way to have control over the CPU cycle utilization.
I have another idea. What if I write some program in C or C++ that acts as a dynamic memory and CPU filler, i.e. does nothing useful but eats up memory and/or CPU cycles anyways?
Is there a better approach that I can use?
Any ideas/suggestions/comments are welcome.
http://weather.ou.edu/~apw/projects/stress/
Stress — намеренно простой генератор рабочей нагрузки для систем POSIX. Он накладывает на систему настраиваемое количество ресурсов ЦП, памяти, операций ввода-вывода и диска. Он написан на C и является бесплатным программным обеспечением под лицензией GPLv2.
Функциональность, которую вы ищете, пересекается с набором функций «инструментов тестирования». Также проверьте http://ltp.sourceforge.net/tooltable.php.
Если у вас одно ядро, этого достаточно, чтобы загрузить ЦП:
while ( true ) {
x++;
}
Если у вас много ядер, вам нужен поток на ядро.
Вы можете сделать его непостоянным голодным, добавив несколько снов.
Что касается памяти, просто выделяйте много.