![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
world |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 133 Регистрация: 2.10.2009 Где: Харьков Репутация: нет Всего: 12 |
Доброе время суток.
Уважаемые форумчане, подскажите, пожалуйста, есть ли в джаве способ изменить размер стека и кучи из кода программы, каккой либо директивой, без изменения настроек компилятора, по типу
Это сообщение отредактировал(а) world - 3.2.2011, 01:03 --------------------
Say what you mean, and mean what you say. Robert Wilson Cody |
|||
|
||||
aleksandy |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 260 Регистрация: 17.12.2006 Репутация: 4 Всего: 5 |
Насколько мне изместно размер кучи можно указать при помощи параметров
З.Ы. Параметры работают в SunOracleJVM |
|||
|
||||
world |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 133 Регистрация: 2.10.2009 Где: Харьков Репутация: нет Всего: 12 |
Ну это параметры компилятора, указываемые в командной строке, а у меня доступа к ним не будет ( --------------------
Say what you mean, and mean what you say. Robert Wilson Cody |
|||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Не компилятора а JRE. А в самом байткоде такие параметры как размер стека и кучи вообще смысла не имеют. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
sergioK1 |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 417 Регистрация: 30.1.2011 Репутация: нет Всего: нет |
хотя стек по определению задаеться до запуска программы, директив прекомпайлера в жаве нет ,
т,е нужно запускать родной код на С, под конкретную OS. до запуска жава программы, какое то извращение ![]() P.S. А в чем задача то ? Может изначально есть другое решение? |
|||
|
||||
jk1 |
|
||||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1168 Регистрация: 17.10.2008 Где: Санкт-Петербург Репутация: 40 Всего: 75 |
... это с процессом компиляции исходника в байткод не связано вообще никак.
Вероятно потому, что нет никаких "прекомпайлеров". На этапе компиляции о размере стека говорить бессмысленно, что уж тут говорить о прекомпиляции.
Полностью согласен. По сути: размер выделяемой памяти и стека задается только ключами JVM при запуске уже скомпилированного кода, больше никак. -------------------- Opinions are like assholes — everybody has one |
||||||
|
|||||||
sergioK1 |
|
||||||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 417 Регистрация: 30.1.2011 Репутация: нет Всего: нет |
1) Байт код или не байт код, размер стэка на уровне процесса задаеться заранее, размер стэка у среда можно задать в функции CreateThread для контретной ОS. 2)Если быть точным,то прекомпайлер, есть только доступ к нему найтивный 3) Раз уж пошла такая пьянка , то мне стало интересно , размер стэка задаеться ключами JVM , то должна быть возможность этот размер проверить? или это недоделки Java ![]() |
||||||||
|
|||||||||
jk1 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1168 Регистрация: 17.10.2008 Где: Санкт-Петербург Репутация: 40 Всего: 75 |
Это не недоделки, сама идеология языка не подразумевает прямой работы с памятью или стеком. Вот тут человек пытается проводить тесты чтобы выяснить, как оценивать размер стека в райнтайме. Результат: практически никак, это обусловлено многими особенностями реализации среды выполнения Java, в том числе динамической компиляцией и отказом от уже скомпилированного кода в силу определенных обстоятельств. Таким образом, если Ваш код зависит от конкретной глубины стека (Мы не берем крайние случаи про глубину = 2) и его поведение различается при максимуме 1500 и 5000 (например), значит менять надо код. Если же задача настолько специфична, что без зависимости от глубины стека никуда - то Java как язык не подходит для решения этой задачи. -------------------- Opinions are like assholes — everybody has one |
|||
|
||||
sergioK1 |
|
||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 417 Регистрация: 30.1.2011 Репутация: нет Всего: нет |
глубина стека это что такое? размер это понятно, 2 чего ?Mв ? 1500-5000 ? |
||||
|
|||||
jk1 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1168 Регистрация: 17.10.2008 Где: Санкт-Петербург Репутация: 40 Всего: 75 |
Глубина стека вызовов - максимальное количество последовательный вызовов в рамках одной рекурсивной цепочки.
Из формулировки проблемы совершенно неясно, что собственно мешает: маленький размер стека в байтах или маленькая его глубина. В любом случае, если не хватает - увеличиваем -Xss. Если увеличивать значение параметра больше некуда (ресурсы не позволяют), а проблема не решается - садимся переписывать код. Мне не встречалось настолько специфичных задач, чтобы эти два простых правила не давали в итоге решения проблемы. Это сообщение отредактировал(а) jk1 - 6.2.2011, 11:08 -------------------- Opinions are like assholes — everybody has one |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Java" | |
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |