在CRM Online Dev环境中下载Web资源是否比Prod环境慢?

时间:2015-08-12 13:36:51

标签: dynamics-crm-online

我有一个Web资源html页面,我在CRM中托管。它使用Kendo UI,我也将其作为CRM中的Web资源托管。这是加载页面时的Chrome网络结果:

enter image description here

下载620KB的js文件一直需要4秒多的时间。这对我来说似乎很慢。生产环境会更快吗?有什么方法可以加快速度吗?

2 个答案:

答案 0 :(得分:0)

这里有几个要回答的问题与测试环境的加载有关,而生产会影响生产是否会更快。性能是关于如何使用资源的功能,特别是CPU,磁盘,内存和网络。了解这些资源在现有环境中的使用方式以及产品是否有所不同可以帮助您回答问题。还存在生产差异问题。

实施例。
a)Dev / QA位于虚拟机上,其中虚拟机主机与其他50个VM共享。所有对资源的访问都由管理程序仲裁(所有共享,非独占),并且所有人都必须竞争资源。 CPU始终以95%++的速度运行,机器始终在交换 - 1Gigabit网络。在生产中,机器也将在VM上运行,但每台主机至少有4个VM。它将拥有自己独有的磁盘,网络(10-Gbit),内存和CPU池,而不与其他主机共享。这会影响从磁盘到内存缓存的交付链,以便经常请求的项目在线上进行维护。在没有仲裁的情况下,对资源的独占访问可以改善文件(和所有文件)上的整个交付链

b)生产CDN与Dev / QA中的无CDN。该文件将从您的本地CDN节点提供,或者理想情况下从客户端的缓存中提供,并为返回访问者提供适当的缓存管理。这突破了对服务器的长请求网络链,从磁盘(如果不在请求缓存中)和服务

c)生产中的不同Web服务器与dev / qa。您正在使用Apache进行测试,但在生产中您将使用nginex。一个是跑车,另一个是运动赛车。赛车在交付文件时获胜。

d)压缩和优化。在prod中,所有文件都被缩小并压缩。这减少了传递文件的网络窗口以及从磁盘中提取的中断服务。最终结果,更快地传递此文件以及所有受缩小和压缩影响的文件。

e)prod中的不同主机。在生产中,您计划将静态文件放在Amazon中,而不是将它们全部托管在一台服务器上,其中虚拟站点位于dev / qa中。这为prod提供了更独特的传递途径。此外,还有亚马逊CDN。

620KB也很重要。这些天经常发生的事情是很多开发flotsam在通过迭代开发周期推出的代码中积累。确保您的文件仅包含所需内容而不包含所需文件。如果这一页不需要某些JavaScript,但下游页面需要这些JavaScript,请考虑在单个页面上将文件分解为较小的块。这可能看似违反直觉,但对于那些从未访问过的用户来说,""有10个JavaScript函数,他们不得不等待,等待(如果是公共站点可能会放弃),而他们从不需要的代码被拉出来。

较小的文件,仅包含该页面所需的内容,至少在会话期间缩小,压缩和缓存* 2 + CDN将统计您的交付日期。

答案 1 :(得分:0)

尽管James对脚本下载时间和环境差异有一个很好的通用答案,但它没有回答手头的问题,在下载脚本时,prod环境会比dev更快吗?

我最终将我的例子移到生产环境中,不幸的是,Dev和Prod之间没有任何统计差异。有时Prod env实际上比Dev更慢。

有趣的是,js文件是缩小的,当实际大小为1.99MB时,它显示为610KB。 MS CRM必须进行一些额外的压缩才能进一步降低下载量,或Chrome就是......