我一直在做我们的生产赊账过程的对象创建时间一些记录。每隔一段时间,初始化的对象将采取的方式比预期更长。通过初始化我的意思是调用它的init(),并通过一对夫妇的论据可以是简单的变量或对象。 e.g。

<cfset validateObj = createObject("component", "compExample").init( 
        productionMode = VARIABLES.productionMode, 
        ipWhiteListed = isWhiteListed, 
        ipLocatorObj = VARIABLES.ipLocatorObj ) />

这就是所有这种情况发生在的init()方法。一般来说,执行时间是0毫秒,但在随机时间我可能会得到3或3.5秒。这不是针对一个特定的服务器或一般我们繁忙的时期。这似乎是相当随机的。

一个想到的是,这些模板正在从我们的模板缓存驱逐,因为它们不是特别频繁使用,但我查cfstat在许多服务器和最大CP /秒-1。

运行CF 8,0,1

有其他人曾经遇到过这样?

有帮助吗?

解决方案 3

增加在模板缓存项的最大数目。作为缓存使用LRU和这些对象是特定于不是特别频繁使用,他们要在高速缓存逐出功能。更新一半的服务器,并保持半相同和周末进行比较。有在高速缓存中增加在服务器上对象实例化次显着降低。

其他提示

有可能是init()方法调用别的东西,可能会导致随机性能下降之内的东西。这可能是由于如何参数都被init方法存储在CFC内。

在CFC init方法,它只是:

<cfset variables.productionMode = arguments.productionMode />

或者使用setter方法如:

<cfset setProductionMode(arguments.productionMode) />

也许一个structAppend?

<cfset structAppend(variables, arguments) />

第一种方法,仅仅是直线上升集将是至少可能引起的任何问题。 第二种方法,使用setter方法,可以放慢速度取决于什么setter方法是干什么的,也可能是其他什么方法调用,等等。 第三种方法应该是相当一致的,但我看到structAppend和其他内部功能没有明显的原因随机减慢。

我觉得约翰·韦思的评论是肯定的东西看看。还有,是否有流量发生了此服务器上的任何奇数量时init方法减慢?

你有没有尝试过隔离的CreateObject()调用,看看它是否是导致慢下来,或者如果它确实是init方法的对象实例?一般来说,在CF对象实例化可以是一个随机缓慢的过程。这可能是更好的CF 8但最近的经验说,这可能是问题。

随时升级的JVM到最新版本,然后看看问题是否仍然存在。

在从服务器管理器运行探查任何机会呢?这导致我们类似随机缓慢。

的想法夫妇....是否有任何锁定正在进行或依赖关系的网络/ web服务/数据库。你有任何审计或类似的事情(例如AOP)?

还有什么CF版本你是?是运行0.1更新服务器(如果适用的话,即,8.01)。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top