Через ajax выполняю php-код, с помощью curl авторизуюсь и выполняю код. Таких ajax-запросов может быть очень много за день. Что может случиться, если я не буду использовать curl_close()?
По завершении работы скрипта все ресурсы будут закрыты автоматически.
Если не вызвать curl_close, то соединение останется открытым и доступным для других keep-alive запросов из этого скрипта соответственно в пределах времени, сколько удалённая сторона готова ждать другие запросы. Поэтому если вы сделали запрос, получили ответ - и больше вам от удалённой машины ничего не нужно - лучше вызовите curl_close, чтобы не держать зря соединение.
А вот если вам к одной удалённой машине необходимы выполнить несколько запросов подряд - то вполне имеет смысл делать сначала один curl_init и затем переиспользовать этот дескриптор. Вызов curl_close явно запрещает переиспользовать соединение и будет создаваться новое соединение.
Т.е. код вида
$ch = curl_init();
foreach(...) {
curl_setopt_array($ch, ...);
$result = curl_exec($ch);
...
}
curl_close($ch);
Позволит сэкономить некоторое время, затрачиваемое на установку TCP соединения, а для HTTPS - и на согласование TLS, что ещё интереснее.
Релевантная заметка на хабрахабре
Продвижение своими сайтами как стратегия роста и независимости