簡體   English   中英

具有反應式 Spring API 的 JMH 基准測試

[英]JMH Benchmark with reactive Spring APIs

現在我正在嘗試將 JMH 基准集成到我用反應式 java 編寫的微服務中。 我正在使用一個控制器方法和許多其他集成為 Maven 依賴項的服務。 我找不到任何資源來使用@Benchmark進行異步調用。 此外,控制器中有許多鏈式服務類,這是如何工作的? 我的 JUnit 測試目前有@MockBean和 Mockito 的組合。

我已經從這里的框架 outlinerd 開始https://github.com/stsypanov/spring-boot-benchmark但不確定如何擴展到反應式 java。 我要進行基准測試的代碼示例:

@RestController
@Validated
@RequiredArgsConstructor
@RequestMapping(value = "/api/v1/projects", produces = HAL_UTF8)
public class ProjectController {

  private final ProjectService projectService; // interface with @Service annotation
  
  public Mono<ResponseEntity<Void>> deleteProject(
      @ApiParam(required = true, value = "Existing Project Directory URN") @PathVariable
          String id) {
    return projectService
        .deleteProject(finalId)
        .thenReturn(ResponseEntity.noContent().<Void>build());
  }
}

我認為您可以使用 JLBH(Java Latency Benchmark Harness)代替 JMH 來衡量這一點。 有關詳細信息,請參閱它的存儲庫: https ://github.com/OpenHFT/JLBH。

JLBH 相對於 JMH 的優點是:

  • 代碼在您的系統上下文中運行,並具有所有依賴項
  • 可變吞吐量(對於每個吞吐量,我們可以估計最大尾延遲並提供 SLA)
  • 代碼中的各種采樣點

有關快速啟動指南,請查看https://www.javacodegeeks.com/2016/04/jlbh-introducing-java-latency-benchmarking-harness.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM