在调用R包时提高性能
我们已经创建了一个R包,它应该通过OpenCPU进行近实时的评分。现在的问题是,调用包的开销非常大。R部分的执行速度相当快,因此开销在R初始化之前和之后 R包包含两个ModelObeJCT(100MB和40MB)。我们可以看到性能差与ModelObeJCT的大小有关,因为如果对象较小,性能会提高在调用R包时提高性能,r,performance,opencpu,R,Performance,Opencpu,我们已经创建了一个R包,它应该通过OpenCPU进行近实时的评分。现在的问题是,调用包的开销非常大。R部分的执行速度相当快,因此开销在R初始化之前和之后 R包包含两个ModelObeJCT(100MB和40MB)。我们可以看到性能差与ModelObeJCT的大小有关,因为如果对象较小,性能会提高 我们已经在server.conf中添加了要预加载的包,并添加了onLoad您是否尝试将包名添加到/etc/opencpu/server.conf中的preload配置参数中?(在第3.3节中列出)感谢您
我们已经在
server.conf
中添加了要预加载的包,并添加了onLoad您是否尝试将包名添加到/etc/opencpu/server.conf
中的preload
配置参数中?(在第3.3节中列出)感谢您的回复。是的,它已经添加到/etc/opencpu/server.conf(中还介绍了您的Apache配置是否使用prefork模型?不,我们还没有对此进行配置。但我不明白这会如何影响性能。目前,我们只是测试模型,因此卷曲的数量非常有限,因为它们是手动完成的。我相信Apache的默认MPM是prefork,因此除非您更改它,否则它将被禁用。)很可能是您所需要的。prefork模型确保在请求需要子进程之前,新进程已经启动/准备就绪。由于每个API/函数调用都使用R,子进程的转换可能非常耗时,因此您希望每个R实例都有一个子进程,并且希望在c之前加载它们将接收客户端请求。这可能不是您的问题,但我认为您不会得到与其他apache multi-proc模块相同的保证。您是否尝试将包名添加到/etc/opencpu/server.conf
中的预加载
配置参数中?(在本手册的第3.3节中列出)谢谢您的回复。是的,它已经添加到/etc/opencpu/server.conf(中还介绍了您的Apache配置是否使用prefork模型?不,我们还没有对此进行配置。但我不明白这会如何影响性能。目前,我们只是测试模型,因此卷曲的数量非常有限,因为它们是手动完成的。我相信Apache的默认MPM是prefork,因此除非您更改它,否则它将被禁用。)很可能是您所需要的。prefork模型确保在请求需要子进程之前,新进程已经启动/准备就绪。由于每个API/函数调用都使用R,子进程的转换可能非常耗时,因此您希望每个R实例都有一个子进程,并且希望在c之前加载它们客户端请求将被接收。这可能不是您的问题,但我认为您不会得到与其他apache multi-proc模块相同的保证。
redirect namelookup connect pretransfer starttransfer total
1.626196 0.000045 0.000049 0.000118 1.633508 3.259843
redirect namelookup connect pretransfer starttransfer total
0.085428 0.000044 0.000049 0.000125 0.046630 0.132217