2011-04-14 99 views
3

我正在拉取服务器上生成的JSON文件,每5分钟左右(现在大小约为10 KB,随着它投入生产将会变得更大)。一旦文件被拉出,我就有各种Javascript可视化API,我需要插入这些数据。Javascript前端与C后端的性能

我的后端在C中,我使用Jquery/Javascript进行可视化。

以下是我拥有的两种方法: 1. a。每5分钟从服务器获取整个JSON数据(> 8KB)。 b。根据JavaScript API的要求解析数据,使用Javascript并提取所需的信息。 (不同的可视化API需要不同的信息子集) c。显示可视化

或 2. a。处理后端自身的数据并根据JavaScript API提取信息并将其存储在后端 b。让每个javascript api独立进行Ajax调用并获取他们自己的数据并显示它

我的问题是,以上两种方法中的哪一种会产生更快的输出。 在这种情况下,C中的后端会比Javascript中的前端更快吗?

回答

0

我不清楚你正在尝试做什么。无论哪种方式,我认为业务逻辑必须包含在服务器上,并且表示逻辑(jQuery/JavaScript或任何正在使用的库)必须严格在客户端上运行。

2

可以给出的唯一答案是基准两种方法。有太多的变数可以给出明确的答案。

正在使用的浏览器会影响客户端的运行时间,因此根据您需要支持的内容,您需要牢记这一点。

需要分析的数据结构有多复杂可能会影响客户端性能。

如果每个用户的数据是相同的,那么您可能会在服务器上解析并缓存数据。如果不同,您可能需要客户端来处理这个问题。

0

你的第二种方法会更快,可能会更好。既然你说过“让每个javascript api ...得到他们自己的数据”,看起来方法1将表明发送一个客户超过它的需要。

0

取决于您的插件将产生多少请求。如果不需要进行任何计算,并且所有操作都是在第一次调用中完成的,并且您的任务仅限定每个数据块的位置,则选项1是最快的。请求是昂贵的。

另一方面,如果你打算用javascript来计算值,这取决于这些计算的重要程度。在这种情况下,您将得到一个更好的答案,做一个基准测试:

要澄清,在第一种方法中,您的瓶颈将是计算。第二,网络/客户端的浏览器速度花费的时间。

考虑将所有结果分组到一个JSON结果中,并将它们传递给插件。

并考虑过,如果你在服务器上,也许你可以使用缓存来赢得一些处理时间(和我说,也许是因为它取决于你使用什么样的算法/数据源)

希望它有帮助,祝你好运! :-)

0

你应该知道的第一件事是你的具体设置将会对这个系统的性能产生更多的影响,所以唯一确定的方法就是对两种方法进行基准测试。也就是说,像C这样的编译语言几乎总是比JavaScript这样的解释语言更快。