Сколько стека используют программы?

На самом деле, я не жду ответа на конкретный вопрос. Мне действительно интересно, есть ли какие-либо исследования, которые могли бы дать некоторое представление о моделях использования по всему спектру.

Точнее: есть ли какие-либо опубликованные опросы о том, какая часть программ стека вызовов обычно используется на разных платформах, рабочих нагрузках, компиляторах и т. д.?

EDIT: В ответ на некоторые комментарии, предполагающие, что вопрос бессмысленен...

Мои собственные наблюдения подсказывают, что использование стека следует за чем-то, напоминающим экспоненциальное распределение со средним значением порядка десятков байтов. Я надеялся на какое-то указание на стабильность среднего значения в разных измерениях. То есть, если бы я измерил потребление стека для широкого круга программ, будут ли они демонстрировать одинаковую pdf, независимо от того, как я группирую результаты, или, скажем, программы для Linux постоянно будут иметь в среднем больше/меньше стеков, чем программы для Windows. , или языки со статической типизацией против языков с динамической типизацией и так далее?

Сравните это, скажем, с общим использованием оперативной памяти, на которое влияют особенности решаемой задачи, в частности, рабочий набор, необходимый этой программе для эффективного выполнения своих обязанностей. Моя гипотеза состоит в том, что распределение использования стека будет относительно стабильным в широком диапазоне сред, и я просто хочу знать, была ли когда-либо подтверждена или опровергнута эта или подобная гипотеза.

(Примечание: я не буду притворяться, что мои наблюдения точны, исчерпывающи или каким-либо образом научны. Вот почему я здесь, чтобы задать вопрос.)


person Marcelo Cantos    schedule 29.09.2012    source источник
comment
Вы также можете спросить, сколько памяти выделяют программы? или сколько лет людям?. Никакой ответ, который вы могли бы найти, не имел бы никакого значения.   -  person mah    schedule 29.09.2012
comment
@mah: это не совсем то же самое. Я изменил свой вопрос, чтобы ответить на ваши вопросы.   -  person Marcelo Cantos    schedule 29.09.2012
comment
Я думаю, что это хороший вопрос, и, вероятно, в общем случае на него не было ответа, потому что он просто не был проблемой. При этом я думаю, что вы можете найти ответ, если сузите свой взгляд и посмотрите на исследования встроенных систем.   -  person linuxuser27    schedule 29.09.2012


Ответы (1)


Я мог бы интерпретировать ваш вопрос таким образом. В Java собственный размер стека по умолчанию составляет 128 КБ с минимальным значением 1000 байт. Размер стека Java по умолчанию составляет 400 КБ с минимальным значением 1000 байт. Конечно, вы можете расширить размеры, используя параметры -ss и -oss соответственно.
Точнее: я не понимаю вашей потребности в опубликованных опросах по стекам на разных платформах.

person venkatKA    schedule 29.09.2012
comment
Это не были конкретно платформы; это всего лишь одно из измерений, которое, по моему мнению, может представлять интерес и/или ценность. Кроме того, из первой части вашего ответа можно сделать вывод о необходимости: как решить, что такие величины, как 128 КБ и 400 КБ, являются разумными значениями по умолчанию для разных платформ? - person Marcelo Cantos; 29.09.2012