\s+ заменяет только 0x20, 0x9, 0xA, 0xD о чём прямо сказано в мануале. Если что-то и выглядит как пробел, может спокойно им не являться. А есть ещё разные типографские неразрывные пробелы и т.д.
Следить за тем, чтобы очищались ресурсы (delete context, mysql_free_result и тд) и переменные. gc сделает своё дело. не делать циклических ссылок. в остальном пхп достаточно хорош и нет таких memory leaks как у JS. вот nodejs я бы категорически не советовал для долгих скриптов.