我们正在从Railo切换到Lucee 5.2.3并注意到请求启动时有时存在大的延迟。我想我已经把它归结为一个函数,它将大约30个带有createObject('component', ...)
的组件加载到Request范围中。在Railo上,此列表将在一秒钟内加载。在Lucee上它可能需要大约20秒,但并非总是如此。如果我们需要动态创建数据源或连接到除环境的主要全局数据源之外的数据源,似乎始终如一。在初始加载这些组件对象后,它将在一秒钟内加载。我无法弄清楚可能导致这种初始性能下降的原因。 .cfc文件位于站点ROOT目录下的子目录中,所以我只使用标准<cfset Request.Helpers[ThisHelper] = createObject("component","cfcs.componentFileName") />
。这个函数没有调用init()
,它只是创建对象。此外,此函数不是我们动态创建任何数据源的地方,它只是在请求范围内创建对象。
答案 0 :(得分:0)
不能具体评论Lucee,但要知道传统上我们总是在CF中避免过多的对象创建。是否可以将任何对象移动到应用程序范围,创建一次并由所有访问者重新使用?
也可能是Lucee基于OSGi而非基于Classloader的东西。也许是OSGi服务启动的一些开销?