Javascript Highcharts PhantomJS-替代方法

Javascript Highcharts PhantomJS-替代方法,javascript,highcharts,Javascript,Highcharts,这与用于服务器端图表生成的Export Server+PhantomJS的新功能有关 以下HSE指one2Team的Highcharts服务器端导出框架 根据我们的初步分析,我们发现在我们测试的饼图和条形图中,作为单独的过程调用PhantomJS比HSE慢。我们发现PhantomJS有一个内置的Web服务器特性——Mongoose-ariya.ofilabs.com/2012/01/glori-of-the-snow.html,这有助于简化流程通信(也避免了infile、outfile方法中的I

这与用于服务器端图表生成的Export Server+PhantomJS的新功能有关

以下HSE指one2Team的Highcharts服务器端导出框架


根据我们的初步分析,我们发现在我们测试的饼图和条形图中,作为单独的过程调用PhantomJS比HSE慢。我们发现PhantomJS有一个内置的Web服务器特性——Mongoose-ariya.ofilabs.com/2012/01/glori-of-the-snow.html,这有助于简化流程通信(也避免了infile、outfile方法中的I/O)。我们可以这样执行,发现PhantomJS在性能上与HSE相当或更好。但目前还不确定它在生产流量中需要多少负载和响应。您是否评估过任何此类选项?

Highcharts导出服务器用于服务器端生成,可以在两个方面进行改进

  • 重用phantomJS进程,而不是为每次转换启动一个进程。这可以通过将脚本作为Web服务器模块运行来避免。另一种可能是通过stdin/stdout直接写入进程。但据我所知,这还没有完全实现
  • 避免为导出服务器和phantomJS脚本之间的通信创建临时文件
  • 在进行这些改进时,我在本地运行时得到了以下测试结果

    当前版本:

    • 达到对流2000点>5秒超时
    • 12点图(llexl)耗时620ms
    经过以上改进:

    • 2000点需要660毫秒
    • 12点图(llexl)耗时250ms

    很高兴了解性能方面的改进。您是否测试或计划测试并发请求的负载?是的,我们将设置一个测试服务器并对其进行压力测试。忘了提到另一项改进。这是在公共池中运行几个phantomjs进程的可能性。找到稳定的解决方案后,我们将在github上发布。谢谢。我们也将许多PhantomJ(通过webserver模块提供服务)与ApacheHTTP服务器集群在一起以实现负载平衡,并发现它们具有响应性。但仍然继续从PhantomJS获得核心转储。如果您在解决转储问题方面有任何进展,请告知。这可以使解决方案非常稳定,在这种情况下,集群比故障转移更具可扩展性(这是肯定的,PhantomJS在'n'个请求后会出现转储)。Highcarts在Github上发布了导出服务器的新版本,其中包括PhantomWebServer的对象池。看见