【问题标题】:Application.cfc variables and memory in scope application范围应用程序中的 Application.cfc 变量和内存
【发布时间】:2020-01-30 17:11:51
【问题描述】:

coldfusion 9 和 application.cfc 中的应用程序有问题。 在 onRequestStart 方法中有应用范围示例的变量:

<cffunction name = "onRequestStart">
    <cfset application.URL_Images = 
    '<img src = "http: // # server_name #: # server_port # / aseng / images / logo1.jpg">'>
</cffunction>

由于我有很多人访问该应用程序,因此服务器超时,我在 Monitor 中看到范围应用程序正在消耗大量内存。

问题是,Application.cfc 中的应用程序范围变量是否比 Application.cfm 中消耗更多的内存?

在 Application.cfm 中,服务器没有发生崩溃。

我有变量需要为每个请求进行验证,因为它们根据访问类型接收不同的值。我们有远程访问和本地访问,它们是不同的端口。

如何在不消耗服务器内存的情况下设置这些变量? 为了解决这个问题,我返回到 Application.cfm,直到我确定 Application.cfc 已正确创建。

谢谢

【问题讨论】:

    标签: coldfusion coldfusion-9


    【解决方案1】:

    Application.cfc 中的应用程序范围变量是否比 Application.cfm 中消耗更多内存

    回答:不。一点也不。

    您可能在application 范围内设置了不应该的内容。该代码表示​​,对于所有用户,对于每个请求,重新定义一个应用程序级变量。似乎该值应该是 request 级别变量,因为它会根据用户及其设置而变化。

    • 用户 1 发起请求并设置 application.URL_Images 的值。
    • 用户 2 发起请求并设置 application.URL_Images 的值。
    • 用户 1 完成了他们的请求并读取了 application.URL_Images 的值,该值现已更改。
    • 用户 2 完成了他们的请求,一切正常。
    • 用户 1 想知道为什么他们会看到 wring 徽标。

    这可能只是您的应用程序负载达到当前资源限制的情况。奇怪的是,它只对cfc 而不是cfm 表现得很奇怪。

    • 检查您的 JDK 版本并确保它是 CF 9 支持的最新版本
    • 确认您有足够的内存分配给应用程序实例。

    最后,回顾一下您是如何构建Applicaiton.cfc 的。基于CFC 函数触发器在CFM 中的不同条件下运行,其中可能还有其他内容重载application 范围。我将探索应用程序范围内的更多其他内容,并确保其中有什么,何时加载以及是否需要在那里“缓存”。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-07-09
      • 2018-04-27
      • 1970-01-01
      • 2012-06-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多