我需要进行大量的迁移工作并转换大量数据。 因此,我实现了SimpleAsyncTaskExecutor ...
ConcurrencyLimit是否有最佳实践?
> desired_output
# A tibble: 10 x 5
DATE_FIRE FID_FIRE date NDVI meanPrefire
<chr> <dbl> <chr> <dbl> <dbl>
1 1989-07-31 1 1988-01-01 0.9 0.85
2 1989-07-31 1 1989-01-01 0.8 0.85
3 1989-07-31 1 1990-01-01 0.1 0.85
4 1989-07-31 1 1991-06-07 0.2 0.85
5 1989-07-31 1 1992-01-01 0.3 0.85
6 1989-08-31 2 1988-01-01 0.8 0.825
7 1989-08-31 2 1989-01-01 0.85 0.825
8 1989-08-31 2 1990-01-01 0.15 0.825
9 1989-08-31 2 1991-06-07 0.3 0.825
10 1989-08-31 2 1992-01-01 0.5 0.825
答案 0 :(得分:0)
这在很大程度上取决于您要生成的负载类型。它主要是受CPU约束还是受IO约束?
如果它受CPU限制,那么如果线程多于CPU内核,那么您将一无所获。实际上,由于不必要的上下文切换和无用的调度开销,您会迷路。
如果受IO限制,则需要进行实验,在给定硬件设置和负载的确切类型的情况下,并行度的最佳点是产生最高的吞吐量。我将从低个位数的线程开始,然后不断加倍,以快速了解吞吐量如何随线程数变化。如果最好的结果是线程数量很少,请不要感到惊讶。