производительность eval () - одна большая или много маленькая? - PullRequest
1 голос
/ 02 ноября 2011

Если у меня есть большая html-страница, которую я извлекаю из базы данных, и в ней есть несколько небольших тегов PHP, которые нужно eval () ed. Лучше ли с точки зрения производительности просто оценивать () целую страницу или разбивать ее и оценивать () только небольшие фрагменты по отдельности?

Ответы [ 2 ]

3 голосов
/ 02 ноября 2011

Вы потратите больше времени на обработку / разбиение, чем с одним eval ().PHP уже достаточно эффективен при загрузке / разборе / выполнении кода из файла, поэтому позвольте ему делать то, что у него хорошо получается, вместо того, чтобы пытаться угадать систему и добавлять дополнительные ненужные издержки.

Конечно, если вы действительнодля этого, вы можете попробовать оба метода и сделать несколько тестов.

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

Трудно ответить на ваш вопрос. Однако одно предложение, которое я могу дать, заключается в том, что, прежде всего, вы должны инкапсулировать проблему, например, в свою собственную функцию:

/**
 * @param $page
 * @return void
 */
function execute_page($page)
{
    # ... - fetch code from store based on $page parameter and execute it.
}

После того, как вы это сделаете, вы сможете позже изменить не только место хранения страницы, но и способ ее выполнения (куски сразу).

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

Затем вы можете проверить, какой метод / вариант быстрее.

...