Я хотел бы знать, как создается экземпляр ХФУ при холодном синтезе под капотом! Я знаю, что вы создаете экземпляр компонента, и вы получите ссылку на вновь созданный экземпляр, и вы можете использовать его для вызова открытых методов внутри них.
Но что именно происходит, когда я пишу код
<cfscript>
person = createObject('component','human') // what happen here!!!!
person.speak();
</cfscript>
Сделал некоторые поправки к моему заявлению здесь. причина, по которой я задаю этот вопрос, заключается в том, что у меня есть экземпляр, сохраненный в области приложения, и этот экземпляр используется, как показано ниже
application.person.speak();
сейчас под очень высокой нагрузкой. я обнаружил, что память не выпускается для человека obj и в какой-то момент она достигла 200 Мб .. странно! , Так что внесены исправления, как говорится в лучших практиках
request.person = duplicate(application.person);
теперь есть еще один прямой способ сделать это
request.person = createObject('component','human');
отличие: первый создает объект и сохраняет его в области общего доступа, делает глубокую копию для запроса при каждом запросе (здесь экземпляр создается только один раз). Второй создает экземпляр каждый раз, когда делается запрос. между ними наверняка есть разница в производительности, потому что во втором методе экземпляр создается каждый раз. Я хотел бы знать, что именно является архитектурой, стоящей за созданием экземпляра, который делает его менее лучшим, чем первый !!
Просто кюри знать!