Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

227
Views
¿Cómo deshacerse de "Los parámetros del método deben ser clases @State" en JMH cuando los parámetros provienen de otro método?

Estoy trabajando en un proyecto maven. El escenario es algo así como a continuación...

 class Test { public void applyAll() { .................... .................... Collection<Migratable> applicableUpdates = SomeOtherClass.getApplicableUpdates(); doUpdate(applicableUpdates); } @Benchmark public void apply(Migratable m) { .................... .................... } private void doUpdate(Collection<Migratable> applicableUpdates) throws Exception { for (Migratable m : applicableUpdates) { try { apply(m); } catch (Exception e) { logger.error("Falid to apply migration {}" + m, e); throw e; } } } }

Necesito calcular cuánto tiempo lleva ejecutar cada migración. Simplemente necesito calcular el tiempo de ejecución del método apply (Migratable m) .
Ahora, cuando construyo mi proyecto usando "mvn clean install", la compilación falló y muestra "Los parámetros del método deben ser clases @State".

Aquí, el parámetro proviene de otro método doUpdate (Colección de actualizaciones aplicables) [ver el escenario]. Entonces, ¿cómo puedo deshacerme de este error en un escenario dado?

over 4 years ago · Santiago Trujillo
1 answers
Answer question

0

Hay bastantes problemas en su configuración aquí y parece que en realidad no ha mirado las muestras de JMH; y te recomiendo encarecidamente que lo hagas.

Algunas notas...

1) Su método @Benchmark devuelve void - debería devolver something ; de lo contrario, use BlackHoles (esto está en las muestras).

2) Si los parámetros provienen de otro método , significa que ese método debe ser un método @SetUp (esto está en los ejemplos)

3) El error que está viendo tiene que ver con el hecho de que su Migratable no es en realidad una clase @State (¡esto está nuevamente en los ejemplos!)

En este punto, no puedo enfatizar eso lo suficiente, pero mire y comprenda las muestras. No va a ser fácil, esto es micro-benchmark y por mucho que JMH intente hacernos las cosas más fáciles ocultando todo el código muy complicado , todavía nos obliga a cumplir con las reglas que existen allí.

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!