Как узнать, сколько памяти используется определенной переменной ColdFusion или каждым свойством области действия ColdFusion? - PullRequest
2 голосов
/ 02 сентября 2011

Я сейчас кеширую запрос в ColdFusion. Он имеет несколько тысяч записей и около 30 столбцов - большинство из них являются столбцами VARCHAR. Мне интересно, сколько памяти это использует, чтобы определить, действительно ли стоит хранить ее в кеше. Как я могу узнать объем памяти, который используется кэшированным запросом и / или любой переменной, на самом деле (например, область приложения)?

Ответы [ 3 ]

2 голосов
/ 03 сентября 2011

К сожалению, нет CF / Java sizeOf (), который можно было бы ожидать, чтобы делать подобные вещи, а это то, что изначально можно было бы ожидать сделать. Google "java sizeof", чтобы получить больше информации, чем вы, вероятно, захотите прочитать по этому вопросу.

Как сказал Дэн, есть серверный монитор, который будет это делать. Он также имеет API, если вы хотите посмотреть на такие вещи программно: http://localhost:8500/CFIDE/adminapi/servermonitoring.cfc.

Документы здесь: http://help.adobe.com/en_US/ColdFusion/9.0/Admin/WSc3ff6d0ea77859461172e0811cbf363cdd-7ff4.html

Пример кода:

<cfquery name="q" datasource="cfartgallery">
    SELECT  *
    FROM    artists
</cfquery>
<cfdump var="#q#">

<cfset oAdmin = createObject("component", "cfide.adminapi.administrator")>
<cfset oAdmin.login("pwd", "adminapi")>

<cfset oMonitor = createObject("component", "cfide.adminapi.servermonitoring")>
<cfset aMetrics = oMonitor.getQueryDetails()>
<cfdump var="#aMetrics#">

Вам нужно включить мониторинг сервера, чтобы он мог что-либо вернуть (привет Рэю Камдену за помощь в этом бите; -)

2 голосов
/ 02 сентября 2011

Если вы используете CF Enterprise (или Developer), вы можете открыть Server Monitor из CF Administrator и просмотреть использование памяти . Не делайте этого в производственной системе, так как трекер памяти может серьезно перегружать CF-сервер.

1 голос
/ 03 сентября 2011

В Railo есть функция SizeOf(obj), которая может сообщить вам, сколько памяти используется объектом.

В зависимости от того, насколько легко будет выполнить настройку, вы можете запустить приложение на Railo, кэшировать запрос, а затем вызвать SizeOf, чтобы получить необходимую информацию.

Это, вероятно, не будет точно таким же (зависит от особенностей внутреннего хранения вещей), но должно дать приблизительное представление.

(p.s. Просто предлагая использовать Railo для этого измерения - не предлагая полностью переключиться; если, конечно, вы не хотите.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...