小编Tom*_*Tom的帖子

如何识字调用资源密集型功能

(1)我有一个资源密集型函数f,其调用导致大量内存分配。因为在f内部,将存在大量异议关系集合以构造到内存中。

(2)但是,在我的工作量中,我碰巧需要反复调用函数,例如在for循环和map函数中调用超过1K次。这样,调用f的循环会迅速关闭JVM。

for {
    calling f here
}
Run Code Online (Sandbox Code Playgroud)

为了使上述工作负载正常工作,我在调用f之前引入Thread.sleep来引入间隔以延迟f调用的每次迭代,如下所示

for {
    Thread.sleep (10)
    calling f here
}
Run Code Online (Sandbox Code Playgroud)

这个经过时间的确会减少总内存使用量,以使工作量超过大型工作量。

(3)但是,有以下已知作用:(a)增加GC的频率,(b)增加总响应时间。因此,我需要根据客户端和服务器的超时配置进行调整。(c)延迟可以线性增长,当需要增加迭代时,延迟不会扩大。(d)如果有同时请求触发上述相同工作量的请求,则其他请求将超时。

我的问题:如何从字面上调用资源密集型功能:

(A)(2)以合理的响应时间同时处理上述一个大工作量的最佳方法是什么?(B)(2)同时处理多个大型工作负载的最佳方法是什么?

scala

0
推荐指数
1
解决办法
75
查看次数

标签 统计

scala ×1