Искусственная генерация загрузки процессора в Java - PullRequest
2 голосов
/ 02 июня 2011

Есть ли простой способ генерировать постоянную загрузку процессора в Java? Как генерировать нагрузку на процессор на 60%.

Ответы [ 3 ]

2 голосов
/ 02 июня 2011

Не проверял это, но оно может работать приблизительно, чтобы ваше приложение работало и спало в правильном соотношении.Что-то вроде (псевдокод):

load = 60;  
do forever
  time = current_system_time_ms() + load
  while (current_system_time_ms() < time)
     // just consume some time for 60 ms 
  end

  SLEEP(100 - load);  // sleep for 40 ms
end 

Хорошо, вы попросили простой способ, но ... :)

1 голос
/ 02 июня 2011

Я думаю, что это даже невозможно, потому что:

  1. способ, которым JVM интерпретирует код (при условии, что он вообще интерпретирует код), зависит от реализации
  2. компилятора иJVM может оптимизировать код (конечно, в зависимости от реализации), чтобы вы могли запускать другие байтовые коды, чем те, которые содержатся в данном файле .class.
0 голосов
/ 07 ноября 2017

В последнее время вроде как на вечеринке, но я просто хотел поделиться с вами тем, что я создал небольшую клиентскую библиотеку с открытым исходным кодом под названием FakeLoad , которую можно использовать для генерирования различных видов системной нагрузки, таких как процессор, память иДисковый ввод / вывод на лету.

Например, генерация загрузки ЦП 60% в течение 30 секунд с помощью FakeLoad может быть выполнена следующим образом:

// Creation
FakeLoad fakeload = FakeLoads.create()
    .lasting(30, TimeUnit.SECONDS)
    .withCpu(60);

// Execution
FakeLoadExecutor executor = FakeLoadExecutors.newDefaultExecutor(); 
executor.execute(fakeload);

Она не обеспечивает идеальной точности, но способна генерироватьдовольно постоянные и точные нагрузки.Он доступен на Maven Central, так что не стесняйтесь попробовать:)

...