Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > ява и загрузка процессора


Автор: polosatij 24.11.2008, 20:50


виртуальной машине ява можно сказать сколько максимально она может использовать памяти.. можно ли как сказать, не загружать процессор более чем на ... ?  smile 

Автор: v2v 24.11.2008, 21:01
где то я видел схожий вопрос : сказали что нельзя.

а в чём задача?

Автор: polosatij 24.11.2008, 21:04
Цитата(v2v @  24.11.2008,  21:01 Найти цитируемый пост)
а в чём задача? 


пропарсить 1-10 гиг xml-я на сервере.. при этом загрузка возрастает до 100% пока всё пропарсится, нужно пару часов..  smile 

Автор: Samotnik 24.11.2008, 21:13
ну почему нельзя 
У меня иногда  java.exe  90%  проца кушает  smile 

Автор: v2v 24.11.2008, 21:17
Цитата(polosatij @  24.11.2008,  21:04 Найти цитируемый пост)

пропарсить 1-10 гиг xml-я на сервере.. при этом загрузка возрастает до 100% пока всё пропарсится, нужно пару часов..  smile  

тоесть надо что бы оно себе в беграунде всю ночь делалось?
предложение:
запустить это в отдельном thread и каждые N секунд делать ему wait на несколько секунд ...

Автор: polosatij 24.11.2008, 21:33
Цитата(v2v @  24.11.2008,  21:17 Найти цитируемый пост)
тоесть надо что бы оно себе в беграунде всю ночь делалось?
предложение:
запустить это в отдельном thread и каждые N секунд делать ему wait на несколько секунд ...


yes.. 

да, такая мысль была.. хотелось бы не заниматься велосипедом  smile 

Автор: v2v 24.11.2008, 21:55
хорошо , вариант номер 2 установить CPU приоритет программы, программы с низким приоритетом не будут мешать программам  с более высоким приоритетом.
В виндах:
cmd /c start /low myapp.exe
Хм, но на сервере у тебя наверняка какой то линух.. точно сказать как это сделать в линуксе не могу , но посмотри в сторону команды renice.

Автор: COVD 24.11.2008, 22:05
А почему 100%? Если только в коде ошибки, "короткое замыкание", то процессор может быть захвачен полностью. 

А большой файл обычно читают с диска или из сети порциями. Стало быть, операции в памяти приходится прерывать естественным образом на ожидание новой порции данных извне. Ну и пусть JVM c операционной системой сами решают.      

Автор: garbuz 24.11.2008, 22:50
polosatij, я все же советую вариант с потоками, предложенный v2v. Если в JVM еще что-то крутится-вертится помимо парсинга, сможешь расставить приоритеты потокам, стопить их на нек. время и т.д. и т.п. А с памятью там можно вроде что-то с кучей помудрить, но мог путать, можно еще погуглить по "JVM memory limit"

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)